是否可以将带参数的命名函数作为参数传递给jquery函数而不是匿名函数。这就是我想要做的事情:
$('body').bind("click", saySomething);
function saySomething(word)
{
console.log(word);
}
现在我认为我说我不能在jQuery调用中将括号添加到saySomething
参数中,所以如何传入参数?
注意:这可能是另一个问题的重复,但是在尝试向SO和Google解释这个问题时难以理解,我发布了这个问题。
答案 0 :(得分:2)
$('body').bind("click", function(){saySomething(par);});
这样的东西?
答案 1 :(得分:2)
您正在做的事情非常好,因为click
事件将event
对象作为第一个参数传递,word
函数中的变量saySomething
将是event
对象。
如果你想自己定义哪个单词,就没有办法将它包装在其他函数中,并用你想要的值调用它。
答案 2 :(得分:1)
是的,您可以使用$.proxy
或原生.bind
method,但this
将不再设置为正确的元素:
$('body').bind("click", $.proxy(saySomething, null, 'hello'));
答案 3 :(得分:1)
背后的原因是,如果我想绑定一些元素 对于相同的行为,我想我可以将它封装在一个函数中 并且只是参考它
你仍然可以参考相同的函数调用,它只是更冗长一点。没有办法解决这个问题。
$('.item1').bind("click", function(e){ saySomething('one'); });
$('.item2').bind("click", function(e){ saySomething('two'); });
$('.item3').bind("click", function(e){ saySomething('three'); });
此外,您在评论中的示例似乎对我有用。