2012-03-21 19 views
5

का उपयोग कर एकाधिक तत्वों के साथ एक चयनकर्ता बना सकता हूं। मेरे पास क्लिक ईवेंट के लिए श्रोता है जिसमें से मुझे कुछ तत्वों को बाहर करने की आवश्यकता है।क्या मैं jquery निकटतम()

अभी मेरी सूची बढ़ रही है, इसलिए मैं चयनकर्ता में कई तत्वों को "बंडल" करने का एक बेहतर तरीका ढूंढ रहा हूं।

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

वहाँ इन तत्वों को बाहर करने का एक बेहतर तरीका है:

यह है कि मैं क्या है?

मदद के लिए धन्यवाद!

+0

क्या आप एचटीएमएल अपडेट कर सकते हैं जिस पर jquery काम कर रहा है? –

+0

क्या आप केवल उसी तत्व को नहीं दे सकते जिसे आप एक ही कक्षा की जांच करना चाहते हैं? – Deadlykipper

+0

यकीन नहीं है कि आपका क्या मतलब है? मैं jquery 1.7.1 (और Jquery मोबाइल) – frequent

उत्तर

18

आप जिसका मतलब है CSS चयनकर्ताओं निर्दिष्ट कर सकते हैं,:

: आप दो या अधिक चयनकर्ताओं निर्दिष्ट करने के लिए अल्पविराम का उपयोग कर सकते
if($(event.target).closest('div:jqmData(panel="popover"), div.pop_menuBox, .toggle_popover, .ui-selectmenu').length > 0) { 
    return; 
} 
2

एक अल्पविराम का उपयोग करें।

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

jQuery प्रलेखन आप एक से अधिक चयनकर्ता प्रदान कर सकते हैं के अनुसार सबसे करीब के लिए: http://api.jquery.com/closest/

+0

हाँ का उपयोग कर रहा हूं, मैंने इसे भी पढ़ा है। मैं थोड़ा अनिश्चित था कि "यह हस्ताक्षर (केवल!) JQuery 1.7 के रूप में बहिष्कृत है। यह विधि मुख्य रूप से आंतरिक रूप से या प्लगइन लेखकों द्वारा उपयोग की जाने वाली है।" Jquery पृष्ठ पर मतलब है? "हस्ताक्षर" क्या है? – frequent

+0

इसे इंगित करने के लिए धन्यवाद। क्या यह आपके लिए काम करता है? मैं यह भी उत्सुक हूं कि क्यों jQuery ने इसके चयनकर्ताओं को उदाहरण में एक सरणी में रखा है: 'var close = $ (" li: first ")। निकटतम ([" उल "," बॉडी "]);' –

+0

ठीक है। बस कोशिश की। अगर मैं अल्पविराम के साथ एक नियमित चयनकर्ता करता हूं तो यह काम करता है। मुझे लगता है कि सरणी चीज अब समर्थित नहीं है। बाद में परीक्षण करेंगे – frequent