मैं अपने आवेदन में event.stopPropagation()
का उपयोग कर रहा हूं। हालांकि, एक परिदृश्य दिखाई दिया है जहां मैं प्रचार जारी रखना चाहता हूं जैसे उपर्युक्त समारोह कभी नहीं बुलाया गया था। तो मैं सोच रहा हूँ; बंद होने के बाद प्रचार को फिर से शुरू करने का कोई तरीका है? एक कॉल को event.stopPropagation
पर एक दर्जन अलग सशर्त बयान में स्थानांतरित करने के लिए बहुत कठिन होगा।jQuery में event.stopPropagation पूर्ववत कैसे करें?
उत्तर
एक बार प्रचार बंद कर दिया गया है, इसे फिर से शुरू नहीं किया जा सकता है। समाधान के लिए, आप क्या कर सकते एक चर सेट किया गया है, और उसके बाद ही तो इस वैरिएबल सच है रोक:
var stop = false;
// do your logic here
if(stop){
event.stopPropagation();
}
event.stopPropagation()
अपनी स्थिति के अंदर कॉल करें। उदाहरण के लिए
$el.click(function(event) {
if (some_condition) {
event.stopPropagation()
// do stuff
}
else {
// do other stuff, without stopping propagation
}
});
यह कठिन हो सकता है, लेकिन दुर्भाग्यवश स्टॉपप्रॉपैगेशन एक तरह से स्विच है। एक बार रुक गया, आप इसे उसी घटना के लिए वापस चालू नहीं कर सकते हैं।
को छोड़कर सभी सशर्तों में 'event.stopPropagation()' को कॉल करने पर बेहतर होगा। यह "ए" स्थिति नहीं है। यह स्थितियों की ** ** बहुत ** है। खुद को उद्धृत करते हुए: "एक कॉल को ईवेंट में स्थानांतरित करने के लिए यह बहुत कठिन होगा। स्टॉपप्रोपैगेशन एक दर्जन अलग सशर्त बयान" – Hubro
यह कठिन हो सकता है, लेकिन दुर्भाग्यवश 'स्टॉपप्रॉपैगेशन' एक तरह से स्विच है। एक बार रुक गया, आप इसे उसी घटना के लिए वापस चालू नहीं कर सकते हैं। –
अब ** वह ** वह उत्तर है जिसे मैं ढूंढ रहा था। जैसा कि वास्तव में मेरे प्रश्न का उत्तर देता है, अगर आप – Hubro
बस इस तरह अपने मूल घटना refactor:
var refEvent = event.originalEvent;
refEvent.cancelBubble = false;
refEvent.defaultPrevented = false;
refEvent.returnValue = true;
refEvent.timeStamp = (new Date()).getTime();
if (event.target.dispatchEvent){
event.target.dispatchEvent(refEvent);
} else if (event.target.fireEvent) {
event.target.fireEvent(refEvent);
}
क्या आप e.stopPropagation() के साथ बंद होने वाली घटना का एक उदाहरण उदाहरण प्रदान कर सकते हैं और फिर उपरोक्त आपके उदाहरण के साथ पुनरारंभ कर सकते हैं? मैं इसे काम नहीं कर सका, लेकिन यह सिद्धांत में सही दिखता है। – gfullam
यहाँ एक समाधान है कि काम करता है:
$('#mydiv').on('click.new', function(e){
e.stopImmediatePropagation();
alert('this will happen only once');
$('#mydiv').unbind('click.new');
});
यह इस तथ्य घटना कस्टम नाम स्थान हो सकता है, और उसके अनुसार निकल कर सकते हैं का उपयोग करता है। यह e.stopPropagation
के लिए भी काम करता है। उस मामले के लिए, यह उस कस्टम क्लिक ईवेंट से जुड़े कुछ भी पूर्ववत कर सकता है।
- 1. jquery Event.stopPropagation() काम नहीं करता
- 2. जावास्क्रिप्ट में "surroundContents" को पूर्ववत कैसे करें?
- 3. WPF बाइंडिंग में पूर्ववत करें
- 4. पूर्ववत करें/अपरिवर्तनीय वस्तुओं
- 5. पूर्ववत करें [UIGestureRecognizer * requireGestureRecognizerToFail]
- 6. `hg pull` को पूर्ववत कैसे करें?
- 7. गिट: कैसे पूर्ववत करें * और * पिछली शाखा
- 8. पूर्ववत कार्यक्षमता को कैसे कार्यान्वित करें?
- 9. गिट मर्ज स्क्वैश को पूर्ववत कैसे करें?
- 10. mysql क्वेरी को पूर्ववत कैसे करें?
- 11. WTForms- टेक्स्टटेरा फ़ील्ड को पूर्ववत कैसे करें?
- 12. एंड्रॉइड - Edittext को कैसे पूर्ववत करें?
- 13. पूर्ववत करें "Git रीसेट --merge"
- 14. पूर्ववत कनवर्ट करें संग्रह में परिवर्तित
- 15. ग्रहण में बंद टैब पूर्ववत करें?
- 16. डब्ल्यूपीएफ में पूर्ववत/फिर से करें?
- 17. विजुअल स्टूडियो 2008 में "पूर्ववत करें" सुविधा
- 18. .NET विंडोज़ एप्लिकेशन में 'पूर्ववत' ऑपरेशन को कैसे कार्यान्वित करें?
- 19. एमवीवीएम एप्लिकेशन में पूर्ववत/फिर से कैसे कार्यान्वित करें?
- 20. एक गिट प्रतिबद्धता पूर्ववत करें
- 21. "पूर्ववत हटाना"?
- 22. पूर्ववत कैसे काम करता है?
- 23. एक गिट स्टैश को पूर्ववत करें
- 24. पूर्ववत TortoiseSVN
- 25. एक फास्ट-फॉरवर्ड विलय को पूर्ववत करें
- 26. पूर्ववत और SWT में WYSYWYG contenteditable में फिर से करें
- 27. एक मर्ज को पूर्ववत करें जिसे
- 28. jQuery में सॉकेट कैसे करें?
- 29. "प्रारंभ पृष्ठ के रूप में सेट करें" पूर्ववत करना
- 30. Mercurial में एक चाल/नाम बदलें कार्रवाई पूर्ववत करें?
एमएमएमएम ... http: //stackoverflow.com/questions/4735006/javascript-how-to-enable-stoppropagation – elclanrs
यदि ऐसी सुविधा थी, तो आपको यह तय करने के लिए एक दर्जन सशर्त बयान की आवश्यकता नहीं होगी कि आपको क्या करना चाहिए इसे बुलाओ? – Jon
वे पहले से ही वहां हैं। 'Event.stopPropagation()' और (शायद ही कभी) को कॉल करने के लिए एक कॉल होगा hypothetical 'event.resumePropagation()'। यह – Hubro