मैं एक मोबाइल वेब साइट पर काम कर रहा हूं जिसमें विभिन्न उपकरणों पर काम करना है। इस समय मुझे सिरदर्द देने वाले ब्लैकबेरी हैं।
हमें दोनों कीबोर्ड क्लिक के साथ-साथ टच इवेंट का भी समर्थन करने की आवश्यकता है।
आदर्श रूप से मैं सिर्फ उपयोग करूंगा:
$thing.click(function(){...})
लेकिन हम जिस मुद्दे पर चल रहे हैं, वह यह है कि इनमें से कुछ ब्लैकबेरी डिवाइसेस में टच के समय से एक क्लिक को ट्रिगर करने में बहुत कष्टप्रद विलंब होता है।
उपाय इसके बजाय टचस्टार्ट का उपयोग करना है:
$thing.bind('touchstart', function(event){...})
लेकिन मैं दोनों घटनाओं को कैसे बांध सकता हूं, लेकिन केवल एक फायरिंग? मुझे अभी भी कीबोर्ड डिवाइस के लिए क्लिक इवेंट की आवश्यकता है, लेकिन निश्चित रूप से, मैं टच डिवाइस का उपयोग कर रहा हूं, तो क्लिक इवेंट फायरिंग नहीं चाहता।
एक बोनस सवाल: क्या ऐसा करने के लिए और इसके अलावा उन ब्राउज़रों को समायोजित करना है जिनके पास टचस्टार्ट इवेंट भी नहीं है? इस पर शोध करने में, ऐसा लगता है कि ब्लैकबेरी OS5 टचस्टार्ट का समर्थन नहीं करता है, इसलिए उस ब्राउज़र के लिए क्लिक घटनाओं पर भी भरोसा करना होगा।
परिशिष्ट:
शायद एक अधिक व्यापक प्रश्न है:
JQuery के साथ, एक ही बाइंडिंग के साथ टच इंटरैक्शन और माउस इंटरैक्शन दोनों को संभालना संभव / अनुशंसित है?
आदर्श रूप से, इसका उत्तर हां है। यदि नहीं, तो मेरे पास कुछ विकल्प हैं:
1) हम डिवाइस की जानकारी प्राप्त करने के लिए WURFL का उपयोग करते हैं ताकि हमारे स्वयं के मैट्रिक्स का निर्माण हो सके। डिवाइस के आधार पर, हम टचस्टार्ट या क्लिक का उपयोग करेंगे।
2) जेएस के माध्यम से ब्राउज़र में स्पर्श समर्थन का पता लगाएं (मुझे उस पर कुछ और शोध करने की आवश्यकता है, लेकिन ऐसा लगता है कि यह संभव है)।
हालांकि, यह अभी भी एक मुद्दा छोड़ देता है: बीओटीएच का समर्थन करने वाले उपकरणों के बारे में क्या। हमारे द्वारा समर्थित कुछ फोन (अर्थात नोकिआस और ब्लैकबैरीज़) में टच स्क्रीन और कीबोर्ड दोनों हैं । तो उस तरह से मुझे मूल प्रश्न पर वापस पूरा घेरा जाता है ... क्या किसी भी तरह से दोनों के लिए अनुमति देने का एक तरीका है?
.bind('touchstart mouseup')
करने से इसका समाधान हो जाएगा (नीचे दी गई टिप्पणियों में से एक पर आधारित)