我的代码中有一个声明的函数。每当我点击一个项目时,我想调用此函数。当我将它绑定到此项时,它会立即执行,并且不会触发on click事件。
但是,当我在on click绑定中声明该函数时,它可以正常工作。
我想首先在其他地方声明该函数,然后在click事件发生时调用它
function test2() {
alert('test2');
}
$('body').on('click', '#test1', function() { alert('test1'); });
$('body').on('click', '#test2', test2());
答案 0 :(得分:3)
$('body').on('click', '#test1', function() { alert('test1'); });
这是将函数句柄作为参数传递,而不是函数结果本身
,而
$('body').on('click', '#test2', test2());
这是将函数执行的结果作为参数传递而不是函数本身。
你需要在事件处理程序
中传递funciton本身的句柄$('body').on('click', '#test2', test2);