现在,当在多个选择器
上应用动画效果时$('.foo,.bar').animate({width: '250'}, 'slow',function(){
console.log($(this));
});
控制台日志返回两次.foo
和.bar
那么如何才能根据此.foo
创建其他事件。
像这样$(this)+'.foo'
<< 这是错误的
我需要根据(this) .foo
答案 0 :(得分:6)
为$('.foo')
执行单独的选择器,或使用filter('.foo')
过滤现有的选择器。在早期,将动画/事件绑定到正确的元素集上是最好的。
或者在动画回调中检查$(this).is('.foo')
或$(this).hasClass('foo')
。如果您的动画/事件已经绑定但是您需要弄清楚它们被触发了哪种DOM元素,这种方法最好。
一般来说,与你想要的东西(第一种方法)完全相同的东西是最好的,但这取决于你究竟想要做什么。
见:
答案 1 :(得分:2)
使用.filter()
$(this).filter('.foo').dosomething()
如果this
是.goo
元素,那么$(this).filter('.foo')
将不会返回任何内容,因此之后的操作不会影响.goo
元素