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

rjee0c15  于 2022-11-03  发布在  jQuery
关注(0)|答案(1)|浏览(261)

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

$(".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调用它呢?

ej83mcc0

ej83mcc01#

将click事件中的代码添加到一个名为showPopup的独立函数(而不是闭包)中。然后将绑定到click事件的函数更改为调用showPopup,并在页面加载时添加对showPopup函数的调用。
注意,从1.7开始,jQuery的live函数已被弃用,您应该使用onsource
你必须传递一些参数给函数,因为在初始调用时你不能使用this。你必须在第一次调用主函数时传递这些参数,我不想猜测你是如何确定的。
当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;
}

文档与相关阅读

相关问题