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的。我有一个很好的,老式的,缓存问题。我用的是你的第一行。谢谢