2

快速提问,如果我使用以下代码行,它会自动触发事件:

$(document).on('submit','#site-search',searchOperator.controller.searchStart(searchOperator.model.page));

但是,这不会自动触发:

$(document).on('submit','#site-search',searchOperator.controller.searchStart);

关于为什么当我将变量传递给事件函数时它自动触发事件的任何想法。

编辑:当我说自动触发时,我的意思是事件在页面加载时触发。

4

1 回答 1

3

当您将变量传递给函数时,它会立即调用该函数。当不传递变量时,您将函数作为参数传递,以便在需要时执行。如果需要传递变量,请在匿名函数中执行:

$(document).on('submit','#site-search', function() {
    searchOperator.controller.searchStart(searchOperator.model.page)
});

@Adeneo 的评论很好地总结了它:添加括号调用函数,只是使用函数的名称引用函数。

于 2013-09-19T17:26:02.197 回答