Могу ли я создать селектор с несколькими элементами, используя Jquery closest () - PullRequest
8 голосов
/ 21 марта 2012

У меня есть прослушиватель событий щелчка, из которого мне нужно исключить некоторые элементы.

Сейчас мой список растет, поэтому я ищу лучший способ "связать" несколько элементов в селекторе.

Вот что у меня есть:

$(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
});

Есть ли лучший способ исключить эти элементы?

Спасибо за помощь!

Ответы [ 3 ]

23 голосов
/ 21 марта 2012

Вы можете указать CSS-селекторы, что означает: вы можете использовать запятую для указания двух или более селекторов:

if($(event.target).closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
    return; 
}
3 голосов
/ 21 марта 2012

Используйте запятую.

if ($(event.target)
     .closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
     return; 
}
0 голосов
/ 21 марта 2012

Согласно документации jquery вы можете предоставить более одного селектора для ближайшего: http://api.jquery.com/closest/

...