首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >jQuery:将JS函数绑定到所有选中的元素

jQuery:将JS函数绑定到所有选中的元素
EN

Stack Overflow用户
提问于 2010-12-23 09:38:41
回答 2查看 327关注 0票数 0

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

代码语言:javascript
复制
 $('.thumbImg').mouseout(function(){selectCur()});
//selectCur() is a pure-JS function defined elsewhere in the document

但该函数仅绑定到具有.thumbImg类的第一个元素。通常,我会使用$(this),但这在这里不起作用(除非我做错了什么)。

我想我最后的办法是使用for循环,但我确信有一种方法可以避免这种情况。

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-12-24 02:22:17

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

代码语言:javascript
复制
$('.thumbImg').mouseout(function(){selectCur($(this))});

甚至是

代码语言:javascript
复制
$('.thumbImg').mouseout(selectCur);

然后selectCur可以使用$(this);我认为第一个解决方案更好,因为selectCur可以从其他地方使用,所以您可以在必要时传入节点。

票数 0
EN

Stack Overflow用户

发布于 2010-12-23 10:36:34

this不工作的原因是它是代码中function() {}的本地函数,而不是selectCur()函数。

如果你想在selectCur()中使用this,你可以这样做:

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

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4515210

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档