जैसा कि @ एडेनेओ ने कहा, यदि आप बच्चे पर pointer-events: none
का उपयोग करते हैं, तो माता-पिता का ईवेंट श्रोता यह नहीं जान सकता कि लक्ष्य स्वयं या उसके बच्चे हैं या नहीं। ऐसा लगता है जब आप अनुच्छेद के अंदर कुछ पाठ क्लिक करते हैं, तो ईवेंट श्रोता यह नहीं जान सकता कि आपने टेक्स्ट या पैराग्राफ के पैडिंग पर क्लिक किया है या नहीं।
उसके बाद, आप
document.getElementById('outer').onclick = function(e) {
/* your code */
};
document.getElementById('outer').addEventListener('click', function(e) {
if(e.target !== this) {
e.stopPropagation();
}
}, true);
उपयोग कर सकते हैं pointer-events: none
बिना।
इस तरह, आप कैप्चर चरण का उपयोग करते हैं, ताकि आप बच्चों के ईवेंट हैंडलर (जैसे pointer-events: none
) के निष्पादन को रोक सकें, लेकिन अब आप अंतर कर सकते हैं कि उपयोगकर्ता ने आपके तत्व या उसके बच्चों पर क्लिक किया है या नहीं।
Demo jsFiddle
समस्या: आप IE के पुराने संस्करणों पर कब्जा चरण का उपयोग नहीं कर सकते हैं।
लाभ: चूंकि यह पुराने IE पर काम नहीं करता है, तो आप
e = e || window.event
e.target || e.srcElement
if (e.stopPropagation) { e.stopPropagation(); } else { e.calcelBubble=true; }
जैसी चीजों के बारे में चिंता की जरूरत नहीं है आप तो हमें एचटीएमएल दिखाएं तो हम मदद करने में सक्षम हो सकते हैं :) – Archer
पॉइंटर-इवेंट तत्व को अक्षम करने का तरीका नहीं है, यह सिर्फ कैस सभी सूचक घटनाओं को ls, और यह सहायक है कि आप ऐसा कुछ कर रहे हैं जिसके लिए अंतर्निहित तत्व पर सूचक घटनाओं की आवश्यकता होती है। – adeneo
आपको e.stopPropagation() – Krishna