Can I create a selector with multiple elements using Jquery closest()

frequent picture frequent · Mar 21, 2012 · Viewed 10.2k times · Source

I have a listener for click events from which I need to exclude some elements.

Right now my list is growing, so I'm looking for a better way to "bundle" multiple elements in a selector.

This is what I have:

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

Is there a better way to exclude these elements?

Thanks for help!

Answer

ckruse picture ckruse · Mar 21, 2012

You can specify CSS selectors, which means: you can use the comma to specify two or more selectors:

if($(event.target).closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) {
    return; 
}