单击之前单击事件触发器

时间:2014-04-01 01:47:04

标签: 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);

1 个答案:

答案 0 :(得分:5)

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

$('.js-join-button').on('click', function() {
    openDialog(event, signUp)
});

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

 $('.js-join-button').on('click', openDialog);

这会将引用传递给该函数。使用()它会触发该功能。没有,它是一个功能参考。