2012-08-28 8 views
5

मैं किसी ऑब्जेक्ट पर click ईवेंट पर कुछ व्यवहार संलग्न करने के लिए jQuery के .on() फ़ंक्शन का उपयोग कर रहा हूं, span कहें।मैं jQuery के ऑन() फ़ंक्शन को फ़िल्टर के साथ मूल चयनकर्ता कैसे प्राप्त करूं?

मेरे सेटअप इस तरह दिखता है:

$('#container').on('click', 'span', function() { 
    // do stuff 
}); 

इस समारोह के अंदर, thisspan है। मुझे #container कैसे मिल सकता है?


पूर्ण उदाहरण: http://jsfiddle.net/aymansafadi/Nk3p9/

<div id="container"> 
    <span>Click Me!</span> 
</div>​ 

-

$('#container').on('click', 'span', function() { 

    var span = $(this), 
     div = false; // This is what I need 

    console.log(span); 
});​ 
+1

एक आईडी केवल एक बार दिखाई दे सकता है, तो ... '$ ('# कंटेनर')'। ;-) –

+1

या अपने चयनकर्ता को कैश करें ... – elclanrs

उत्तर

8

उपयोग event.delegateTarget

$('#container').on('click', 'span', function(e) { 

    var span = $(this), 
    div = e.delegateTarget; 

    console.log(div); 
}); 

DEMO

+4

मुझे प्यार है जब किसी ने इस तरह के 'संभव नहीं' उत्तरों का एक समूह बनाया है। –

+0

धन्यवाद! मुझे इसी की तो तलाश थी। –

-1

सबसे आसान तरीका है बस span.parent() उपयोग करने के लिए किया जाएगा।

+2

क्या होगा यदि कंटेनर पूर्वजों है? –

+2

'$ ('# कंटेनर') से आसान है? हेहे। –

+0

@mootinator शायद/शायद नहीं, लेकिन यह कम वर्ण हैं। –

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