2012-12-30 18 views
5

पर आग लगती है क्या किसी को पता है कि टचस्टार्ट ईवेंट के दौरान टचेंड ईवेंट क्यों आग लगती है? यह केवल दूसरी बार होता है।टॉचेंड दूसरी बार टचस्टार्ट पर

एक त्वरित कोड स्निपेट:

function touchstart (event) { 
    $(event.target).one('touchend', function() { 
     alert('fired'); 
    } 
} 

तो पहली बार इस निकाल दिया जाता है यह ठीक काम करता है। दूसरी बार यह टचस्टार्ट पर चेतावनी को फायर करता है।

http://jsfiddle.net/8SVFR/

संपादित करें:

समस्याओं के सभी प्रकार का कारण बनता है ऐसा लगता है कि यह एक iPhone समस्या केवल

+0

क्या हम मोबाइल फोन ब्राउज़र के बारे में बात कर रहे हैं? मेरे एंड्रॉइड 4.1 मूल ब्राउज़र पर बस ठीक है। –

+0

एंड्रॉइड 4.1 पर क्रोम और फ़ायरफ़ॉक्स (मोबाइल) में भी ठीक काम करता है। –

+0

केवल आईफोन पर इसकी कोशिश की और यह – darylhedley

उत्तर

5

बाहर बदल जाता है हो सकता है ... एक touchend घटना में एक चेतावनी आग होने से। जब आप 'ठीक' पर क्लिक करते हैं तो यह टचस्टार्ट को सक्रिय करता है, इसलिए अगली बार जब आप तत्व को स्पर्श करते हैं तो स्पर्श को निकाल दिया जाता है। सौभाग्य से मैं अपने कोड की जांच करने के लिए अलर्ट का उपयोग कर रहा था - इसलिए एक बार यह हटा दिए जाने पर मेरा कोड पूरी तरह से काम करता था!

+0

ने कल रात इस मुद्दे को डीबग करने में बिताया - टच इम्यूलेशन के साथ क्रोम में ठीक काम करता है, आईफोन पर दो बार कॉलबैक ट्रिगर करता है। – Paul

1

बस 0T के साथ setTimeout में "touchend" हैंडलर का कोड डालें। इस तरह:

$(someElement).on("touchend", 
function(){ 
    setTimeout(function(){ 
    /*Your code*/ 
    }, 0); 
}); 
संबंधित मुद्दे