在jQuery中,当我们想要使用直播活动(即冒泡的听力事件)时,我们会写下这样的内容:
$dom_element.on('click', some_selector_here, handler);
现在假设我们希望当且仅当$ dom_element也满足某些选择器测试时才会触发点击。当然,我们总是可以写:
$dom_element.on('click', some_selector_here, function() {
if ($dom_element.is(yet_another_selector) {
//do the job!
...
}
}
我想问一下,有没有办法在处理程序逻辑中设置此选择器?
答案 0 :(得分:1)
有几种不同的方法可以在jquery中过滤选择器。 .find()
,.not
,甚至是选择器内的过滤器,例如:nth-child
,:even
。如果你真的想要发挥创意,jquery允许你使用.filter()
编写自己的过滤器。
我发现你可以从中获得很多创意。然后,您只需修改上面的代码:
$dom_element.filter(yet_another_selector).on('click', some_selector_here, handler);
这允许您在过滤器和处理程序中使用函数或闭包,根据事件泡沫进行必要的修改。
.filter()
的文档:http://api.jquery.com/filter/