0

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

我想问有没有办法在处理程序逻辑中设置这个选择器?

4

1 回答 1

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/

于 2013-02-15T08:56:43.230 回答