2012-03-20 11 views
7

मैं क्रॉस प्लेटफॉर्म स्पर्श इवेंट का काम कर रहा हूँ। (स्वाइपिंग इत्यादि) वे एंड्रॉइड डिवाइस पर काम करते हैं लेकिन आईपैड के लिए टचस्टार्ट इवेंट दो बार फायरिंग होता है।आईपैड touchstart फायरिंग में दो बार

this.element.addEventListener('touchstart', mousedown, false); 

var mousedown = function(event) { 
    // Finger Press 
    event.preventDefault(); 
    _this.inGesture = true; 
    _this._originalX = (event.touches) ? event.touches[0].pageX : event.pageX; 
    _this._originalY = (event.touches) ? event.touches[0].pageY : event.pageY; 

}; 

इस समारोह आईपैड पर दो बार फायरिंग कर रहा है, लेकिन Android पर सही ढंग से कार्य।

मैं जोड़ने चाहिए कि यह touchstart आग, तो touchmove, तो touchend और अंत में यह किसी कारण के लिए एक और touchstart करता है।

यहाँ यह JSFiddle पर है: http://jsfiddle.net/6Lb3Z/1

स्क्रीनशॉट: http://i.imgur.com/GS8uI.png

+1

मैं बस अपना आईपैड पर परीक्षण किया है और यह एक बार आग - http://jsfiddle.net/Kai/N7NA5/ – Kai

+0

ठीक है धन्यवाद कि के लिए, समस्या कहीं और होना चाहिए। यहाँ यह JSFiddle पर है: http://jsfiddle.net/6Lb3Z/ – Jasard

+0

मैं jsfiddle पर सही ढंग से चलाने के लिए बेला अद्यतन; मुझे अभी भी केवल एक टचस्टार्ट कॉल दिखाई देता है: http://www.jsfiddle.net/6Lb3Z/1/ मैं आईओएस 5.1 के साथ आईपैड 2 का उपयोग कर रहा हूं। स्क्रीनशॉट http://i.imgur.com/Oz5z4.png – Kai

उत्तर

0

आप jQuery या zepto की तरह एक पुस्तकालय का उपयोग कर रहे हैं, तो आप .one विधि का उपयोग कर सकते हैं।

jQuery के API documentation से:

तत्वों के लिए एक घटना के लिए कोई हैंडलर देते हैं। प्रति तत्व सबसे अधिक बार हैंडलर को निष्पादित किया जाता है।

+3

क्या यह एक बार कभी नहीं बल्कि प्रति स्पर्श केवल एक बार है? –

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