10

我有一个点击事件的监听器,我需要从中排除一些元素。

现在我的列表正在增长,所以我正在寻找一种更好的方法来“捆绑”选择器中的多个元素。

这就是我所拥有的:

$(document).on('click tap', function(event) {               
    if ($(event.target).closest('div:jqmData(panel="popover")').length > 0 ||
        $(event.target).closest('div.pop_menuBox').length > 0 ||
        $(event.target).closest('.toggle_popover').length > 0 ) ||
        $(event.target).closest('.ui-selectmenu').length > 0 {
          return; 
    }
    // do stuff
});

有没有更好的方法来排除这些元素?

感谢帮助!

4

3 回答 3

27

您可以指定 CSS 选择器,这意味着:您可以使用逗号指定两个或多个选择器:

if($(event.target).closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
    return; 
}
于 2012-03-21T12:55:51.277 回答
6

使用逗号。

if ($(event.target)
     .closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
     return; 
}
于 2012-03-21T12:55:02.120 回答
1

根据 jquery 文档,您可以提供多个最接近的选择器:http: //api.jquery.com/closest/

于 2012-03-21T12:55:34.860 回答