现在,当在多个选择器上应用动画之类的效果时
$('.foo,.bar').animate({width: '250'}, 'slow',function(){
console.log($(this));
});
.foo控制台日志返回两次.bar
那么我如何才能仅基于此进行其他事件.foo。
像这样的$(this)+'.foo'<<这是错误的
我需要根据(this)的位置进行其他活动 .foo
现在,当在多个选择器上应用动画之类的效果时
$('.foo,.bar').animate({width: '250'}, 'slow',function(){
console.log($(this));
});
.foo控制台日志返回两次.bar
那么我如何才能仅基于此进行其他事件.foo。
像这样的$(this)+'.foo'<<这是错误的
我需要根据(this)的位置进行其他活动 .foo
为 做一个单独的选择器$('.foo'),或者用 过滤现有的选择器filter('.foo')。在早期,最好将动画/事件绑定到正确的元素集。
或者在动画回调中检查$(this).is('.foo')是否$(this).hasClass('foo'). 如果您的动画/事件已经绑定,但您需要弄清楚它们被触发的 DOM 元素类型,这种方法将是最好的。
一般来说,完全按照你想要的方式绑定东西(第一种方法)是最好的,但这取决于你到底想要做什么。
看:
利用.filter()
$(this).filter('.foo').dosomething()
如果this是一个.goo元素,则$(this).filter('.foo')不会返回任何内容,因此之后的操作不会影响.goo元素