Javascript 如何在jquery中传递带参数的命名函数而不是一个非函数?

Javascript 如何在jquery中传递带参数的命名函数而不是一个非函数?,javascript,jquery,Javascript,Jquery,是否可以将带参数的命名函数作为参数而不是匿名函数传递给jquery函数。这就是我想做的: $('body').bind("click", saySomething); function saySomething(word) { console.log(word); } 现在我想我说得对,我不能在jQuery调用中向saySomething参数添加括号,那么我如何传入参数呢 注意:这可能是另一个问题的重复,但在试图向SO和Google解释这个问题时遇到了困难,我已经发布了这个问题 $(

是否可以将带参数的命名函数作为参数而不是匿名函数传递给jquery函数。这就是我想做的:

$('body').bind("click", saySomething);

function saySomething(word)
{
    console.log(word);
}
现在我想我说得对,我不能在jQuery调用中向
saySomething
参数添加括号,那么我如何传入参数呢

注意:这可能是另一个问题的重复,但在试图向SO和Google解释这个问题时遇到了困难,我已经发布了这个问题

$('body').bind("click", function(){saySomething(par);});

类似这样的事情?

您正在做的事情非常好,因为
单击
事件将
事件
对象作为第一个参数传递,所以
saysome
函数中的变量
word
将是
事件
对象

如果您想定义单词的含义,则无法将其包装到其他函数中,并使用所需的值调用它。

是的,您可以使用,或本机,但是
将不再设置为正确的元素:

$('body').bind("click", $.proxy(saySomething, null, 'hello'));

其背后的原因是,如果我想绑定一些元素 对于相同的行为,我想我可以将其封装在一个函数中 只要参考一下就可以了

您仍然可以引用同一个函数调用,它只是稍微详细一点。这是没有办法的

$('.item1').bind("click", function(e){ saySomething('one'); }); 
$('.item2').bind("click", function(e){ saySomething('two'); }); 
$('.item3').bind("click", function(e){ saySomething('three'); }); 

另外,您在评论中的示例似乎对我很有用。

为什么不这样做:$('body').bind(“click”,function(e){saySomething(arg);})?,正如推理是什么?其背后的推理是,如果我想将多个元素绑定到同一个行为,我想我可以将其封装在一个函数中并引用它。这似乎并没有达到预期效果:这三个答案都以不同的方式解决了我的问题。我如何接受答案?@JasonMortonNZ:你选择了对你帮助最大的答案(例如,你从中学到了最多的东西,这是你正在解决的解决方案,等等)。因此,请看一个我组合的快速JSbin示例。为什么它不能像预期的那样工作:@JasonMortonNZ因为你有一个错误,我修正了它。看:你忘记了在console.log()中关闭字符串的单引号;如果代码抛出错误,JSBin会向您显示错误。只要看看javascript源代码的最底层,我就知道没有办法将我的函数调用包装到函数中,这是我不知道的,因此是我问题的根源。我接受这个答案。但非常感谢所有人的回答和帮助:)