单击之前单击事件触发器

Ben*_*dow 1 javascript jquery

我有一个打开对话框窗口的功能.当用户单击注册按钮时,应该打开注册对话框.但是,只要页面加载,对话框就会打开.如果我使用匿名函数来处理事件它工作正常,但我想重用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);
Run Code Online (Sandbox Code Playgroud)

Ste*_*her 5

您需要将函数包装在匿名函数中.您的代码将运行,否则只是触发该函数.

$('.js-join-button').on('click', function() {
    openDialog(event, signUp)
});
Run Code Online (Sandbox Code Playgroud)

现在,例如,如果您的函数没有采用任何参数,您可以这样做

 $('.js-join-button').on('click', openDialog);
Run Code Online (Sandbox Code Playgroud)

这传递了函数的引用.随着()它触发功能.没有,它是一个功能参考.