2012-07-04 18 views
13

चयनकर्ता नहीं मैं इस वाक्य रचना के साथ() फ़ंक्शन .on उपयोग कर रहा हूँ:JQuery का उपयोग .on() के साथ

$(".schemaTab").on("click", ".schema", function() {}) 
बजाय

.live() क्योंकि मैं .schema divs गतिशील जोड़ने कर रहा हूँ। उन divs में यह कोड है:

<div class="schema" id="SCH_16"> 
    <img src="Img/btnRemove.png" class="ikona SCH_Remove" alt="Smazat" title="Smazat"> 
</div> 

लेकिन मुझे आईएमजी को अपने मूल div के क्लिक ईवेंट से बाहर करने की आवश्यकता है, इसलिए कोई विचार यह कैसे करना है?

मैंने कोशिश की:

$(".schemaTab").not(".SCH_Remove").on("click", ".schema", function() {}) 

... लेकिन यह काम नहीं किया है और मैं .on() कोड

उत्तर

16

.not() क्योंकि on विधि jQuery वस्तु में तत्वों की वर्तमान में चयनित सेट करने के लिए ईवेंट हैंडलर्स लगा देते हैं और परीक्षण करने के लिए मूल चयनकर्ता का उपयोग करता है काम नहीं करेगा क्या घटना लागू होनी चाहिए।

तो मुझे लगता है कि आपके मामले में चयन करना और फिर फ़िल्टर करना चाल चल जाएगा।

एपीआई: http://api.jquery.com/on/

आप इस कोशिश कर सकते:

$(".schemaTab").on("click", ".schema", function (e) { 

    if (!$(e.target).is(".schemaTab")) { 
     // not stuff in here 
    } 

}); 
+0

'यह' हमेशा उस तत्व से बंधेगा जो चेक किया गया था; मुझे लगता है कि आपका मतलब है 'e.target'। – Ryan

+0

@minitech आह धन्यवाद और उपरोक्त आपकी पोस्ट के लिए ++ 1, चीयर्स ':)' –

3

अंदर .not() जोड़ने के बारे में पता नहीं है ऐसा करने का पूरा उद्देश्य इस के लिए है अभी तक डोम में मौजूद तत्वों पर ईवेंट संभाल लें, जिसमें आपका .sch_Remove शामिल है।

$(".schemaTab").on("click", ".schema", function() {}) 

आदेश जब कि img क्लिक किया जाता है खोज किए जाने पर माता-पिता क्लिक कार्रवाई रोकने के लिए, निम्नलिखित (ऊपर अपने कार्य के अतिरिक्त) जोड़ें।

$(".schemaTab").on("click", ".SCH_Remove", function() { return false; }) 

यह माता पिता के लिए प्रचार और उसके onclick विधि पर आरंभ होने से घटना 'क्लिक' को रोकने और डिफ़ॉल्ट क्लिक बर्ताव नहीं कर पाएगा।

+0

बस इतना ही आप जानते हैं, क्योंकि आईएमजी वर्तमान में आपके div में एकमात्र चीज है, कोड की ये दो पंक्तियां अनिवार्य रूप से एक दूसरे को रद्द कर देती हैं। मुझे लगता है कि आप अन्य चीजें जोड़ रहे होंगे? अन्यथा आपको अपने दृष्टिकोण पर पुनर्विचार करने की आवश्यकता हो सकती है – nbrooks

4

बस सुनिश्चित करें कि लक्ष्य से मेल खाता है:

$('.schemaTab').on('click', '.schema', function(e) { 
    if(!$(e.target).is('.schema')) { 
     return; 
    } 

    // Do stuff 
}); 
3

मैं सिर्फ इस समस्या का सामना किया है, और प्रयोग किया है: नहीं selecter, जैसे इतना:

$('.schemaTab').on('click', '.schema:not(.booga)', function(event) { 

// मज़ा यहां होता है });

मैं jQuery 1.11.0 का उपयोग कर रहा हूं, मुझे पता नहीं है कि यह कितना काम करता है।

+0

यह सवाल का जवाब देने लगता है –

संबंधित मुद्दे