दिलचस्प पोस्ट
स्थिर HTML के साथ सामान्य हेडर / पाद लेख कंस्ट्रक्टर में यह अजीब कोलोन-सदस्य (":") वाक्यविन्यास क्या है? क्लोन कैसे करें या एक सूची कॉपी करें? क्या यह Emacs का उपयोग करने के लिए सीखने में समय के लायक है? अपना स्वयं का लैरवेल एपीआई खपत करना जावा में द्विदिश बहु-मूल्यवान मानचित्र इंटेलिजेंस विज़ुअल स्टूडियो 2012 में जावास्क्रिप्ट के लिए काम नहीं करता है दृश्य स्टूडियो सी # स्टेटमेंट गिरने जावा में JAXB के साथ मैं इस XML को कैसे पार्स कर सकता हूं? एल्गोरिथ्म – एक सूची में डुप्लिकेट तत्वों को कुशलतापूर्वक कैसे हटाएं? PHP SimpleXML – एक्सपेथ नोड हटाएं बश कमांड लाइन और इनपुट सीमा शैली पॉपअपमेनू कैसे करें? क्यों OpenFileDialog मेरी कार्यरत निर्देशिका बदलता है? एंड्रॉइड स्टूडियो का उपयोग करते हुए मैं साझा प्राथमिकता फाइल कैसे देख सकता हूं?

स्टॉपप्रेजेशन बनाम स्टॉप इमॅडिएटिप्रोपेशन

event.stopPropagation() और event.stopImmediatePropagation() क्या अंतर है?

Solutions Collecting From Web of "स्टॉपप्रेजेशन बनाम स्टॉप इमॅडिएटिप्रोपेशन"

stopPropagation रोकता निष्पादित होने से किसी भी माता पिता के हैंडलर को रोक stopImmediatePropagation किसी भी माता पिता के हैंडलर और किसी अन्य संचालकों को निष्पादित करने से रोक देगा

Jquery प्रलेखन से त्वरित उदाहरण :

 $("p").click(function(event){ event.stopImmediatePropagation(); }); $("p").click(function(event){ // This function won't be executed $(this).css("background-color", "#f00"); }); 

प्रदर्शित करने के लिए जेएसफ़िल्ड पर एक छोटा सा उदाहरण जोड़ा गया है कि इन दोनों प्रचार के कार्यस्थल कैसे काम करते हैं

तीन घटना संचालकों को बाध्य किया गया है अगर हम किसी भी प्रचार को रोकते नहीं हैं, तो चार अलर्ट्स होना चाहिए – तीन बच्चे की डिवि पर, और एक माता-पिता div पर।

यदि हम घटना को प्रचार से रोकते हैं, तो 3 अलर्ट होंगे (सभी आंतरिक बाल div पर)। चूंकि घटना डोम पदानुक्रम का प्रचार नहीं करेगी, इसलिए पैरेंट डिवी इसे नहीं देखेंगे, और इसके हैंडलर आग नहीं लगाएगा।

अगर हम तुरंत प्रचार बंद कर देते हैं, तो केवल 1 चेतावनी होगी यहां तक ​​कि आंतरिक बच्चे के डिवी से जुड़े तीन ईवेंट हैंडल हैं, हालांकि केवल 1 को निष्पादित किया जाता है और किसी भी अन्य प्रचार को तुरंत मार दिया जाता है, यहां तक ​​कि एक ही तत्व में।

JQuery एपीआई से :

तत्व पर किसी भी अतिरिक्त हैंडलर को क्रियान्वित करने के अलावा रखने के अलावा, यह विधि भी बुलाहट को event.stopPropagation () द्वारा बुलाकर रोक देता है। ईवेंट को बुदबुदाहट से पूर्वजों तक सीमित करने के लिए, लेकिन अन्य ईवेंट हैंडलर्स को उसी तत्व पर निष्पादित करने की अनुमति दें, हम इसके बजाय event.stopPropagation () का उपयोग कर सकते हैं।

ईवेंट का उपयोग करें। यह त्वरित रूप से ज्ञात है कि यह विधि कभी भी बुलायी गई थी या नहीं (उस घटना वस्तु पर)।

संक्षेप में: event.stopPropagation() उसी तत्व पर अन्य हैंडलर को निष्पादित करने की अनुमति देता है, जबकि event.stopImmediatePropagation() प्रत्येक ईवेंट को चलने से रोकता है

event.stopPropagation चलने से माता पिता के तत्वों पर हैंडलर को रोकेंगे।
कॉलिंग event.stopImmediatePropagation भी दूसरे तत्वों को चलने से समान तत्व पर रोक देगा।

मैं देर से आ रहा हूं, लेकिन शायद मैं एक विशिष्ट उदाहरण के साथ यह कह सकता हूं:

कहें, अगर आपके पास <table> , <tr> , और फिर <td> अब, event.stopPropagation() कि आप <td> तत्व के लिए 3 ईवेंट हैंडलर सेट करते हैं, तो अगर आप <td> लिए सेट किए गए पहले ईवेंट हैंडलर में event.stopPropagation() करते हैं, तो <td> लिए सभी ईवेंट हैंडलर अभी भी चलेंगे , लेकिन घटना सिर्फ <tr> या <table> (और <body> , <html> , document , और window तक ऊपर और ऊपर जाना नहीं होगा) का प्रचार नहीं करेगा।

अब, हालांकि, अगर आप अपने पहले ईवेंट हैंडलर में event.stopImmediatePropagation() उपयोग करते हैं, तो, <td> लिए अन्य दो ईवेंट हैंडलर नहीं चलेंगे , और <tr> , <table> तक प्रचार नहीं करेंगे (और जीता ऊपर जाकर और ऊपर <body> , <html> , document , और window )।

ध्यान दें कि यह केवल <td> लिए नहीं है अन्य तत्वों के लिए, यह एक ही सिद्धांत का पालन करेगा

event.stopPropagation () उसी तत्व पर अन्य हैंडलर को निष्पादित करने की अनुमति देता है, जबकि event.stopImmediatePropagation () प्रत्येक ईवेंट को चलने से रोकता है उदाहरण के लिए, jQuery कोड ब्लॉक देखें।

 $("p").click(function(event) { event.stopImmediatePropagation(); }); $("p").click(function(event) { // This function won't be executed $(this).css("color", "#fff7e3"); }); 

यदि event.stopPropagation पिछले उदाहरण में उपयोग किया गया था, तो p तत्व पर अगले क्लिक ईवेंट जो सीएसएस बदलता है, वह आग जाएगा, लेकिन यदि event.stopImmediatePropagation () में , अगले पी क्लिक ईवेंट आग नहीं होगा

1) event.stopPropagation(): => इसका उपयोग केवल इसी संबंधित माता पिता हैंडलर की फांसी को रोकने के लिए किया जाता है।

2) event.stopImmediatePropagation(): => इसका उपयोग event.stopImmediatePropagation(): को छोड़कर इसके संबंधित माता पिता हैंडलर और हेन्डलर या फ़ंक्शन को संलग्न करने के लिए किया जाता है। => यह सभी हैंडलर को पूरे डीओएम के मौजूदा तत्व से जुड़ा भी बंद कर देता है

यहां एक उदाहरण है: जेस्फील्ड !

धन्यवाद, -सहिल