如何从页面加载中调用ajax click事件?

时间:2013-03-01 17:23:33

标签: 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($(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中调用它?

1 个答案:

答案 0 :(得分:3)

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

注意,从1.7 jQuery的live函数开始,不推荐使用on代替source

您必须将一些参数传递给函数,因为在初始调用期间您将无法使用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;
}

文档及相关阅读