我点击一个按钮会触发点击事件,它会打开一个模态界面:
$(".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中调用它?
答案 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;
}
文档及相关阅读
jQuery.ready
- http://api.jquery.com/ready/ jQuery.on
- http://api.jquery.com/on/ jQuery.live
- http://api.jquery.com/live/ [已弃用]