Javascript 如何从页面加载调用ajax单击事件?

Javascript 如何从页面加载调用ajax单击事件?,javascript,jquery,javascript-events,Javascript,Jquery,Javascript Events,我有一个单击事件,当我单击按钮时触发,它会打开一个模式界面: $(".profileF2fClinicalServiceDetails").live("click", function(){ var requestUrl = '/php/includes/ajax.php?operation=profile_edit_f2f_clinical_service_details&service=f2f&counsellor_id='+getPractitionerId($(t

我有一个单击事件,当我单击按钮时触发,它会打开一个模式界面:

$(".profileF2fClinicalServiceDetails").live("click", function(){
    var requestUrl = '/php/includes/ajax.php?operation=profile_edit_f2f_clinical_service_details&service=f2f&counsellor_id='+getPractitionerId($(this))+'&counsellor_address_id='+getAddressId($(this))+'&edit_level='+getEditLevel($(this))+'&tab='+getTab($(this));
    openDialog(requestUrl, "Edit Face to Face Service Details", 850, "location.replace(getCleanedLocationHref()+'&tab="+getTab($(this))+"');");
    return false;
});

但是现在,我想在加载页面时提示触发它,如何直接从HTML调用它?

将单击事件中的代码添加到一个独立的函数(而不是闭包),例如,
showPopup
。然后将绑定到单击事件的函数更改为调用
showPopup
,并在页面加载时添加对
showPopup
函数的调用

注意,从1.7版开始,jQuery的
live
函数已被弃用,您应该在
上使用
()

您必须向函数传递一些参数,因为在初始调用期间您将无法使用
this
。第一次调用main函数时,您必须将这些参数传递给它,我不想猜测您将如何确定它

当触发click事件时,可以按照当前使用的方式从元素中提取参数。你会有这样的东西:

$(document).ready(function() {
    // add the click event
    $(".profileF2fClinicalServiceDetails").on("click", function () {
        var Me = $(this);
        showPopup(
            getPractitionerId(Me),
            getAddressId(Me),
            getEditLevel(Me),
            getTab(Me)
        );
    });

    // call the function right away
    showPopup(
        [initial_counsellor_id],
        [initial_address_id],
        [initial_level],
        [initial_tab]
    );
});

function showPopup(counsellor_id, address_id, level, tab) {
    var requestUrl = '/php/includes/ajax.php?operation=profile_edit_f2f_clinical_service_details&service=f2f&counsellor_id='+counsellor_id+'&counsellor_address_id='+address_id+'&edit_level='+level+'&tab='+tab;
    openDialog(
        requestUrl,
        "Edit Face to Face Service Details",
        850,
        "location.replace(getCleanedLocationHref()+'&tab="+tab+"');"
    );
    return false;
}
文档和相关阅读

  • jQuery.ready
    -
  • jQuery.on
    -
  • jQuery.live
    -[已弃用
  • MDN上的Javascript函数-
您如何处理
$(this)
实例?很好的一点--第一次调用将使用什么作为
this
?您可以使用
bind
轻松解决它,但问题仍然存在。