का उपयोग कर इंटरैक्टिव डोम तत्वों के साथ एक ही पृष्ठ जावास्क्रिप्ट एप्लिकेशन करने में मैंने पाया कि "mouseover-mousemove-mousedown-mouseup-click
" अनुक्रम के बाद एक गुच्छा में सभी होता है घटनाओं का अनुक्रम "touchstart-touchmove-touchend
"।रोकथाम माउस यंत्रानुकरण घटनाओं (यानी क्लिक करें) मोबाइल सफारी/iPhone में स्पर्श घटनाओं से जावास्क्रिप्ट
मैं यह भी पाया है कि यह touchstart
घटना के दौरान एक "event.preventDefault()
" करके ऐसा होने से "mouse*-click
" घटनाओं को रोकने के लिए संभव है, लेकिन केवल फिर, और नहीं touchmove
और touchend
दौरान। यह एक अजीब डिज़ाइन है, क्योंकि touchstart
के दौरान जानना संभव नहीं है, फिर भी उपयोगकर्ता ड्रैग या स्वाइप करने का इरादा रखता है या आइटम पर टैप/क्लिक करता है।
मैंने किसी टाइमस्टैम्प से कहीं भी "ignore_next_click" झंडा सेट अप करना समाप्त कर दिया, लेकिन यह स्पष्ट रूप से बहुत साफ नहीं है।
क्या कोई इसे करने का बेहतर तरीका जानता है, या क्या हम कुछ खो रहे हैं?
ध्यान दें कि जबकि एक "क्लिक" एक "touchstart-touchend
" अनुक्रम के रूप में पहचाना जा सकता है (यानी कोई "touchmove
"), इस तरह के कीबोर्ड इनपुट फोकस के रूप में कुछ बातें, कि केवल एक उचित click
घटना के दौरान हो सकता है।
मैं iPad सफारी स्पर्श इवेंट भी में दिलचस्पी के रूप में Firefox पर आवश्यक है, लेकिन यह मेरे लिए स्पष्ट क्या विशिष्ट समस्या को हल करने की कोशिश कर रहे है। यदि आप अभी भी इस मुद्दे पर काम कर रहे हैं, या इसे हल किया है, तो विस्तृत करने की देखभाल करें? – Tim
मैं ड्रैग-एंड-ड्रॉप जैसी कुछ घटनाओं को संभालने में सक्षम होना चाहता हूं, और "क्लिक" ईवेंट को संभालने में भी सक्षम हूं। मुझे "क्लिक" ईवेंट को उचित "क्लिक" ईवेंट (टचस्टार्ट/टचचेन्ड के बजाए) के रूप में संभालना होगा क्योंकि कुछ चीजें, जैसे कुंजीपटल इनपुट फोकस * केवल * एक क्लिक इवेंट हैंडलर में सक्रिय हो सकता है। –
यह समस्या बेहद परेशान है और एंड्रॉइड को भी प्रभावित करती है। –