2012-05-02 6 views
6

में मैं उल्का के event maps का उपयोग कर कुछ बुनियादी click घटनाओं को झुका दिया है।रोक घटना प्रचार उल्का

मैं संभाला जा रहा करने के बाद प्रचार से घटना को कैसे रोकूं?

उल्का के डॉक्स state कि

अभी, ईवेंट हैंडलर्स अप jQuery के साथ तार कर रहे हैं, और घटना वस्तु आपको प्राप्त एक jQuery घटना वस्तु है।

हालांकि, न तो return false और न ही e.stopPropagation() काम करने लगते हैं।

+0

मुझे इसके साथ बहुत परेशानी थी और इसीलिए मैंने अभी तक jQuery ईवेंट में स्विच किया है। मुझे लगता है कि यह एक बग हो सकता है लेकिन मुझे यकीन नहीं है कि मेरे पास डीबग करने का समय नहीं था। मैं ऐसा करने या डीबग करने का प्रयास करने का सुझाव दूंगा। – jonathanKingston

+0

हाँ मेरा फ़ॉलबैक दृष्टिकोण jQuery ईवेंट हैंडलर का उपयोग करना है, और फिर उल्का ईवेंट मैप्स w/'$ ('# foo') में हुक करें। हैंडलर के भीतर से ट्रिगर ('बार')'। – Emmett

उत्तर

7

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

आप अपने कोड का एक सार पोस्ट कर सकते हैं तो मुझे यकीन है कि अपने विशेष मामले addresed हो जाएगा कर सकते हैं?

समाधान के लिए, आप e.stopImmediatePropagation() है, जो jQuery द्वारा आपूर्ति की है और चलने से किसी अन्य संचालकों रखना चाहिए की कोशिश हो सकती है।

+0

जानकारी के लिए धन्यवाद। मेरे कोड में, मेरे पास 'show' है। मैं '# शो' पर एक क्लिक ईवेंट को संभालने में सक्षम होना चाहता हूं और फिर href url को पालन करने से रोकना चाहता हूं। (अभी, क्लिक को संभालने के बाद यूआरएल बार में दिखाई देता है।) – Emmett

+0

@dgreensp - दस्तावेज़ों में बग के रूप में इसका उल्लेख किया गया था, मैंने सोचा था कि इसे हटा दिया गया था क्योंकि इसे हटा दिया गया था। मेरा सुझाव है कि जब तक यह फिक्स न हो जाए तब तक इसे वापस जोड़ा जाता है। बग के बारे में खुला होने के कारण मुझे लगता है कि व्यक्तिगत रूप से एक अधिक भरोसेमंद वातावरण देता है। – jonathanKingston

+1

आह, आप 'e.preventDefault()' चाहते हैं! @jonathanKingston, उन बग 0.3.5 में तय किए गए थे। – dgreensp

1

मैं स्वयं इस शोध के दौरान इस प्रश्न में भाग गया। ब्लेज़ इवेंट मैप्स के लिए प्रलेखन here है।

इस समस्या उल्का में आप आप क्या चाहते हैं पर निर्भर करता है 2 कार्यों विचार करने की आवश्यकता के लिए:

stopPropagation()

रोकें अन्य तत्वों के लिए ऊपर (उत्साह से भरा हुआ) प्रचार से घटना। एक ही तत्व से मेल खाने वाले अन्य ईवेंट हैंडलर अभी भी और अन्य ईवेंट मैप्स में निकाल दिए गए हैं।

stopImmediatePropagation()

रोकें इस घटना पर चलाया जा रहा है, इस घटना के नक्शे में अन्य संचालकों को शामिल करने से सभी अतिरिक्त ईवेंट हैंडलर्स, संचालकों बुदबुदाती द्वारा पहुंचा, और अन्य घटना नक्शे में संचालकों।

जो मैं चाहता था वह बुलबुला रोकने और अन्य उल्का घटना हैंडलरों को प्रचार करना बंद करना था। तो event.stopImmediatePropagation() चाल है और यह ऊपर की सलाह के रूप में वास्तव में एक कामकाज नहीं है।