Javascript jQuery:将JS函数绑定到所有选定元素

Javascript jQuery:将JS函数绑定到所有选定元素,javascript,jquery,html,function,Javascript,Jquery,Html,Function,我相信这是一个简单的问题,但在这里没有看到适用的答案。我有这样的代码: $('.thumbImg').mouseout(function(){selectCur()}); //selectCur() is a pure-JS function defined elsewhere in the document 但该函数仅绑定到类为.thumbImg的第一个元素。通常,我会使用$(this),但这在这里不起作用(除非我做错了什么) 我想我的最后一个办法是循环,但我相信有办法避免这种情况 谢谢

我相信这是一个简单的问题,但在这里没有看到适用的答案。我有这样的代码:

 $('.thumbImg').mouseout(function(){selectCur()});
//selectCur() is a pure-JS function defined elsewhere in the document
但该函数仅绑定到类为
.thumbImg
的第一个元素。通常,我会使用
$(this)
,但这在这里不起作用(除非我做错了什么)

我想我的最后一个办法是循环,但我相信有办法避免这种情况


谢谢

此不起作用的原因是它是代码中的
函数(){}
的本地函数,而不是
selectCur()
函数

如果要在
selectCur()
中使用
,可以按如下方式操作:

$('.thumbImg').mouseout(选择cur)


这样做的方式是创建一个匿名函数/闭包来调用您的函数,并在mouseout中引用它。与此相反,您所需要做的只是指向您的函数(不调用它,这里没有
()
),当事件触发时将调用它。您不需要函数来指向函数。只要指向它,它就会工作。

不要认为这是缓存问题,这是上下文问题。通过将$this传入您的selectCur来修复它

$('.thumbImg').mouseout(function(){selectCur($(this))});
甚至

$('.thumbImg').mouseout(selectCur);

然后选择cur can use$(这);我认为第一种解决方案更好,因为selectCur可以从其他地方使用,所以您可以在必要时传入节点

问题可能出在
selectCur()
中。该代码确实将处理程序绑定到所有.thumbImg的。我有一个很好的,老式的,缓存问题。我用的是你的第一行。谢谢