2

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

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

4

1 回答 1

3

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

注意,从 1.7 开始,jQuery 的live函数已被弃用,您应该on改用 ( source )

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

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

$(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;
}

文档和相关阅读

于 2013-03-01T17:26:01.050 回答