2015-11-10 11 views
6

मैं एक जावास्क्रिप्ट एप्लिकेशन विकसित कर रहा हूं जिसे आईई 11 और एज दोनों पर चलाना है।IE11 में सूचक घटनाओं का उपयोग करते समय क्लिक रोकें?

pointerover> माउसओवर> pointerenter> mouseenter> pointerdown> mousedown> (pointermove> MouseMove) +> pointerup> mouseup> : IE11 में यह समारोह श्रृंखला मैं दिखाई दे रही है (https://patrickhlauke.github.io/touch/tests/results/ से नकल) निम्नलिखित है (lostpointercapture)> pointerout> mouseout> pointerleave> mouseleave> फोकस> क्लिक

एप्लिकेशन पहले से ही माउस और स्पर्श की घटनाओं को संभालने के लिए ऊपर वायर्ड है, तो मैं सूचक घटनाओं के सभी पर preventDefault() फोन रद्द करने के लिए संबंधित माउस घटना। दुर्भाग्य से, क्लिक अंत में आता है और समस्याएं पैदा कर रहा है। अंत में फायरिंग से क्लिक इवेंट को अक्षम करने के लिए कोई भी तरीका बनाया गया है?

+2

जोड़ने का प्रयास करें 'सूचक-घटनाओं: इस तरह none' – maioman

+0

सूचक-घटनाओं को जोड़ने: कोई नहीं सब कुछ निष्क्रिय करने के लिए लगता है। मुझे यकीन नहीं है कि ऐसा होने वाला क्या है, लेकिन दुर्भाग्यवश मुझे सूचक घटनाओं की आवश्यकता है (हमने उन्हें पॉलीफिल किया है और हमारे विजेट में टच इवेंट के रूप में उनका इलाज किया है)। मुझे पॉइंटर्स रखना होगा, लेकिन श्रृंखला के अंत में क्लिक को अनदेखा करें। –

उत्तर

0

मैं वेबकिट ब्राउज़र पर "पॉइंटरअप" ईवेंट का उपयोग करने के लिए jQuery सूचक घटनाक्रम पॉलीफिल (https://github.com/jquery/PEP) का उपयोग कर रहा हूं और मैं इसी तरह की समस्या में भाग गया। मेरे मामले में, मुझे एक लिंक को पालन करने से रोकना पड़ा।

मैंने "पॉइंटरअप" ट्रिगर होने के ठीक बाद "क्लिक" ईवेंट श्रोता जोड़कर समस्या का समाधान किया, फिर "क्लिक" ईवेंट को रोक दिया और इसके श्रोता को हटा दिया।

var myLink = document.getElementsByClassName("myLink")[0]; 

myLink.addEventListener("pointerup", handleLinkPress); 

function handleLinkPress(evt) { 
    // do something here... 

    evt.target.addEventListener("click", unfollowLink); 

    function unfollowLink(evt) { 
     evt.preventDefault(); 
     evt.target.removeEventListener("click", unfollowLink); 
    } 
} 
संबंधित मुद्दे