指定我们附加jQuery事件的元素的选择器

时间:2013-02-15 08:36:57

标签: jquery

在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!
         ...
    } 
}

我想问一下,有没有办法在处理程序逻辑中设置此选择器?

1 个答案:

答案 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/