我有一个打开对话框窗口的功能。当用户点击注册按钮时,应该打开注册对话框。但是,只要页面加载,对话框就会打开。如果我使用匿名函数来处理事件它工作正常,但我想重用openDialog函数用于其他对话框(登录等),所以我不希望它是匿名的。
var ready;
ready = function () {
$('.js-join-button').on('click', openDialog(event, signUp));
function openDialog(event, dialogType) {
event.preventDefault ? event.preventDefault() : event.returnValue = false;
dialogType.dialog('open');
}
...
}
$(document).ready(ready);
答案 0 :(得分:5)
您需要将函数包装在匿名函数中。您的代码将会运行,否则只会触发该函数。
$('.js-join-button').on('click', function() {
openDialog(event, signUp)
});
现在,例如,如果你的函数没有采用任何参数,你可以做
$('.js-join-button').on('click', openDialog);
这会将引用传递给该函数。使用()
它会触发该功能。没有,它是一个功能参考。