2012-11-08 13 views
9

मेरी रीढ़ देखें में पर निकाल दिया हो रही है, मैं परिभाषित किया है घटनाओं:Backbone.js - इस तरह दोनों क्लिक करें और डबल क्लिक करें घटना एक तत्व

events : { 
    'click .elm' : 'select', 
    'dblclick .elm' : 'toggle' 

}, 

select: function(e){ 
    e.preventDefault(); 
    console.log('single clicked'); 
} 

toggle : function(e){ 
    e.preventDefault(); 
    console.log('double clicked'); 
} 

मैं एक ही तत्व .elm को सिंगल और डबल क्लिक करें घटना श्रोताओं के लिए बाध्य किया है । जब मैं दोगुना इस तत्व पर क्लिक करें, मैं इस उत्पादन प्राप्त करें:

single clicked single clicked double clicked

preventDefault() और stopImmediatePropagation() की कोशिश की और कहा कि इस मुद्दे को हल नहीं किया।

तो, मैं डबल क्लिक करते समय एक क्लिक क्लिक को निकालकर कैसे निकाल सकता हूं?

उत्तर

4

यह बैकबोन के साथ ही कोई समस्या नहीं है। यह एक ही बटन पर एकल क्लिक और डबल क्लिक ईवेंट को संभालने के तरीके के बारे में है।

  1. Need to cancel click/mouseup events when double-click event detected

  2. Javascript with jQuery: Click and double click on same element, different effect, one disables the other

अद्यतन देखें: लेकिन यह बेहतर होगा यदि आप इसे से निपटने के लिए नहीं था। नीचे mu is too short's answer देखें!

0

& टॉगल के अंत में return false; जोड़ने का प्रयास करें।

6

jQuery documentation विशेष रूप से आप क्या कर रहे खिलाफ सिफारिश की:

यह एक ही तत्व के लिए दोनों click और dblclick घटनाओं के लिए संचालकों बाध्य करने के लिए अनुचित है। ट्रिगर किए गए ईवेंट का क्रम ब्राउज़र से ब्राउज़र में भिन्न होता है, कुछ dblclick से पहले दो click ईवेंट प्राप्त करते हैं और अन्य केवल एक ही होते हैं। संवेदनशीलता पर डबल-क्लिक करें (डबल क्लिक के रूप में पहचाने गए क्लिक के बीच अधिकतम समय) ऑपरेटिंग सिस्टम और ब्राउज़र द्वारा भिन्न हो सकता है, और अक्सर उपयोगकर्ता-कॉन्फ़िगर करने योग्य होता है।

जो आप देख रहे हैं वह बिल्कुल ठीक है (पाठ्यक्रम के ब्राउज़र के आधार पर)। आपकी समस्या के आस-पास एकमात्र तरीका एक टाइमर सेट करना और मैन्युअल रूप से एक-दूसरे के बीच अंतर करना है- और स्वयं को डबल-क्लिक करें; तो आपको टाइमर वैल्यू को एडजस्ट करना होगा और विभिन्न ब्राउज़रों और ऑपरेटिंग सिस्टमों को तब तक जांचना होगा जब तक कि आपको कुछ जगहों पर काम करने का नाटक न हो।

मैं दृढ़ता से अनुशंसा करता हूं कि आप इसके बजाय एकल-क्लिक क्रियाओं के साथ अलग-अलग नियंत्रणों का उपयोग करें। डबल-क्लिक बहुत असभ्य अवधि है और हम केवल इसके साथ ही उपयोग करते हैं क्योंकि हम इसका उपयोग करते हैं।

+0

हम्म। मुझे तब अपना आवेदन व्यवहार बदलना होगा। – Veera