我试图在.change()
和.click()
事件上运行一个函数,并将不同的参数传递给该函数。函数foo
在页面加载时自动运行两次(每个事件一次)。在.change()
和.click()
事件之上,当我尝试调用它们时,不要做任何事情。
$(document).ready(function(){
function foo(bar){
alert("This function runs 2 times on page load");
}
$("#some-select").change(foo(false));
$("#some-button").click(foo(true));
});
我希望foo
函数不会在页面加载时自动运行。
答案 0 :(得分:1)
你试过这个:
$(document).ready(function(){
function foo(bar){
alert("This function runs 2 times on page load");
}
$("#some-select").change(foo.bind(null, false));
$("#some-button").click(foo.bind(null, true));
});
答案 1 :(得分:0)
我能够重现这个问题,但在函数中包含调用似乎可以为我纠正。
$(document).ready(function(){
function foo(bar){
if(bar){
console.log('bar is truthy, and somebutton was clicked');
} else {
console.log('bar is falsy, and someselect was changed');
}
console.log("This function runs 2 times on page load");
}
$("#some-select").change(function(){foo(false)})
$("#some-button").click(function(){foo(true)});
});
我的codepen