2010-08-29 13 views
5

मैं निम्नलिखित है: जब भी भीतरी पी तत्वों में से एक क्लिक किया जाता हैप्रतिनिधि हैंडलर और भीतरी बच्चों क्लिक किया

<ul id ='foo'> 
    <li><p>hello</p></li> 
    <li><p>hello</p></li> 
    <li><p>hello</p></li> 
</ul> 

$('#foo').delegate('li', 'click', function(event) { 
    var target = $(event.target); 
    console.log(target); 
}); 

क्लिक हैंडलर कहा जाता हो जाता है, साथ ही माता-पिता ली तत्वों।

मैं मूल तत्व तत्व पर क्लिक किए बिना माता-पिता ली तत्व को पॉइंटर कैसे प्राप्त कर सकता हूं? उदाहरण के लिए, मेरा असली ली तत्वों की तरह लग रहे:

<li> 
    <p>one</p> 
    <div> 
    <p>two</p> 
    </div> 
</li> 

तो मैं मैं माता पिता ली क्लिक किए गए करने के लिए वापस पाने के लिए कई जांच के लिए है ढूँढने रहा हूँ।

$('#foo').delegate('li', 'click', function(event) { 
    var target = $(event.target).('li'); 
    console.log(target); // will always be parent li element itself? 
}); 

धन्यवाद

उत्तर

2

हैंडलर में, thisli तत्व का उल्लेख होगा: वहाँ एक रास्ता सिर्फ एक प्रकार की तरह की मूल चयन करने के लिए है।

$('#foo').delegate('li', 'click', function(event) { 
    var target = $(this); 
    console.log(target); // will always be parent li element itself? 
}); 
0

वर लक्ष्य = $ (this) एक तरह से होना चाहिए - कि कैसे मैं आमतौर पर यह करना है। $ (event.target)। माता-पिता ("li") एक और होगा, लेकिन आप अपेक्षा से अधिक उठा सकते हैं।

+0

जो 'माता-पिता' होना चाहिए, 'माता-पिता' उदाहरण के लिए मेनू के लिए 'उल' को घोंसला कर रहे हैं, तो 'माता-पिता' सभी 'li' वापस कर देंगे। माता-पिता चयनकर्ता से मेल खाने वाला पहला व्यक्ति लौटाएगा। – prodigitalson

+0

@prodigitalson - यह बिल्कुल सही नहीं है। jQuery की '। parent()' विधि केवल तत्काल माता-पिता को देखती है। यदि आप एक चयनकर्ता पास करते हैं, और तत्काल माता-पिता इससे मेल नहीं खाते हैं, तो आपको एक खाली jQuery ऑब्जेक्ट मिलता है। – user113716

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