当有多个选择器时处理 $(this)
Dealing with $(this) when there are multiple selector
现在,当在多个选择器上应用了类似动画的效果时
$('.foo,.bar').animate({width: '250'}, 'slow',function(){
console.log($(this));
});
控制台日志返回两次.foo
和.bar
那么我怎样才能仅基于此.foo
制作其他事件。
像这样的事情$(this)+'.foo'
<<这是
我需要根据(此).foo
的位置执行其他事件
为$('.foo')
做一个单独的选择器,或者用filter('.foo')
过滤现有的选择器。这些最好在早期将动画/事件绑定到正确的元素集上。
或者在动画回调中检查是$(this).is('.foo')
还是$(this).hasClass('foo')
。如果您的动画/事件已经绑定,但您需要弄清楚它们被触发在哪种 DOM 元素上,则此方法是最好的。
一般来说,完全按照你想要的方式绑定东西(第一种方法)是最好的,但这取决于你到底想做什么。
看:
- http://api.jquery.com/filter/
- http://api.jquery.com/is/
- http://api.jquery.com/hasClass/
使用.filter()
$(this).filter('.foo').dosomething()
如果this
是.goo
元素,则$(this).filter('.foo')
不会返回任何内容,因此之后的操作不会影响.goo
元素
相关文章:
- 如何在为表单输入分别处理$(this)和$时编写DRY代码
- $(this.el).find()在事件处理程序中工作,而不是在初始化函数(主干.js)中工作
- extjs中事件处理程序函数中的THIS上下文
- 为什么 DOM 事件处理程序中的嵌套函数会修复“this”绑定
- 在命名处理程序函数中使用 $(this) & event
- 使用 RequireJS 和 JQuery onclick 事件处理“this”
- 在forEach中调用类函数:Javascript如何处理“this”关键字
- 仅处理 $(this) 元素
- 事件处理函数不适用于“this”关键字
- 处理 jQuery 事件时在 JavaScript 类中覆盖的 'this' 关键字
- 在javascript中需要帮助包装函数并正确处理“this”
- 当有多个选择器时处理 $(this)
- 如何使用 JQuery .load(this.href) 处理 POST 请求
- javascript “this” 如何处理来自 jquery 的多个选择器返回
- `expressJS路由处理程序中未定义this
- Meteor的事件处理函数中的this:这是如何绑定到模型对象的
- jQuery:将 $(this) 传递给命名函数事件处理程序
- this.push()可以处理PHP数据,但不能处理javascript数据
- 从事件处理程序回调调用的函数中' this '的值
- Es6类和"this"使用事件处理程序