2015-08-26 9 views
6

मेरे पास ऑन-टैप फ़ंक्शन वाला पेपर-बटन है जो एक पेपर-डायलॉग खोलता है जिसमें "स्वीकार करें" पेपर-बटन होता है जो क्लिक करते समय इसे बंद कर देगा।पॉलिमर 1.0 ऑन-टैप ईवेंट प्रचार

मुझे जो समस्या हो रही है वह है यदि मेरे स्क्रीन रिज़ॉल्यूशन के आधार पर, और संवाद को खोलने के लिए प्रारंभिक बटन पर "स्वीकृति" बटन प्रारंभ होता है, तो क्लिक होने पर, संवाद खुलता है और बंद हो जाता है। मुझे लगता है कि ऑन-टैप इवेंट दोनों को निकाल दिया जा रहा है।

मैंने इन 2 विधियों को आजमाया है लेकिन वे मदद नहीं कर रहे हैं।

event.cancelBubble = true; 
event.stopPropagation(); 
+0

यदि मैं अपने फ़ंक्शन को कॉल करने के लिए ऑन-क्लिक का उपयोग करता हूं, तो ऐसा नहीं होता है। लेकिन मैं अभी भी घटना प्रसार होने से रोकने के लिए एक रास्ता तलाश रहा हूं। – intosite

+0

event.stopPropagation(); कॉलबैक (ई) पर # 95 से https://github.com/PolymerLabs/more-routing/blob/master/demo/polyfora-forum-index.html –

उत्तर

0

समस्या यह है कि एक संधारित्र स्क्रीन या यहाँ तक कि माउस रखता है कुछ मिलीसे भीतर उसी जगह पर एक से अधिक नल घटना उत्पन्न कर सकते हैं।

  • माउस रखता है क्योंकि एक उच्च और कम वोल्टेज में एक त्वरित बदलाव (तार्किक 1 और 0) एक एसी संकेत जो पैदा (हवा के बीच बटन दो contactor हो सकता है) करता है, तो एक capacitator पर गर्त कूद कर सकते हैं मिलान की स्थिति। लेकिन ऑनक्लिक घटना पहले से ही इस मामले को पकड़ रही है और आपको इसे हल करने के लिए कुछ भी करने की आवश्यकता नहीं है।

  • कैपेसिट स्क्रीन कैपेसिटेटर हैं और बस अपनी उंगली को घुमाकर कई टैप ईवेंट ट्रिगर करना चाहिए क्योंकि आपकी त्वचा में इन्सुलेशन की अलग गहराई है और कुछ मामलों में टैप को शुरू करने और समाप्त करने के लिए मुश्किल है।

इस भौतिक समस्या को मंच द्वारा हल किया जाना चाहिए, लेकिन यह वर्तमान में हर स्थिति में नहीं है (लेकिन अधिकांश डिवाइस इसे फ़िल्टर कर रहे हैं)। मैं इस पारस्परिक रूप से एक पारदर्शी ओवरले तत्व के साथ इस आईएसई को हल कर रहा हूं जो कि थोड़ी अवधि के लिए सूचक घटनाओं को पकड़ सकता है, इसलिए मैं कुछ बटनों के लिए बटन या "कैपेसिटिव स्क्रीन" को पकड़ सकता हूं।

यदि आपके लिए 10-20ms पर्याप्त है तो requestAnimationFrame के साथ अपने ऑन-टैप फ़ंक्शन में एक फ्रेम प्रतीक्षा करें और फिर संवाद दिखाएं। सस्ता चाल है, लेकिन यह वही करता है जो इसे करना है, लेकिन आखिरकार आप संवाद दिखाने के लिए एक फिक्स टाइमआउट का इंतजार कर सकते हैं, क्योंकि आपके पास उपयोगकर्ता इंटरैक्शन का जवाब देने के लिए 100ms है।

आप ब्राउजर इवेंट विकल्पों में हेरफेर करके इसे ठीक नहीं कर सकते हैं क्योंकि मुझे पता है कि आपके पास विकल्प नहीं है कि अगली घटना को खुश होने तक कितना समय गुजरना होगा। लेकिन अगर आप एक फ्रेम का इंतजार करते हैं जो आपके जैसे व्यवहार कर सकता है तो आप घटनाओं के बीच देरी जोड़ सकते हैं।

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