2011-01-29 11 views
5

मैं event.preventDefault() का उपयोग कर रहा हूं ताकि # की संगतता को रोका जा सके जो यूआरएल के एंकर का href है। मैं क्लिक के mousedown() और mouseup() भागों पर घटनाओं को पूर्ववत कर रहा हूं, इसलिए मैं क्लिक का उपयोग नहीं कर सकता। लेकिन event.preventDefault() माउसअप() या mousedown() विधियों को envoking करते समय URL पर # के concatenation को रोक नहीं रहा है। मैं इसके पास कैसे आ सकता हूं?मैं jQuery की mousedown और माउसअप विधियों का उपयोग करते समय event.preventDefault() कैसे कर सकता हूं?

उत्तर

11

यदि आप किसी लिंक पर क्लिक करने के बारे में बात कर रहे हैं, तो शायद यह है क्योंकि mousedown और mouseup को रोकने के लिए कोई डिफ़ॉल्ट व्यवहार नहीं है।

लिंक पर क्लिक करने का डिफ़ॉल्ट व्यवहार लिंक पर mousedown प्लस mouseup का संयोजन की आवश्यकता है। यदि आप mousedown हैं तो mouseup से पहले लिंक को खींचें, लिंक का पालन नहीं किया जाता है। वही विपरीत।

केवल तभी जब आप mousedown तब mouseup डिफ़ॉल्ट व्यवहार सक्रिय है। उस घटना को click ईवेंट द्वारा दर्शाया गया है।


संपादित करें:मुझे लगता है मैं इस सवाल का जवाब देना भूल गए।

आप इसके आसपास कैसे जाते हैं? click() इवेंट हैंडलर जोड़ें जो e.preventDefault() करता है।

$('a.myElement').click(function(e){e.preventDefault()}); 

आप भी घटना के प्रसार को रोकना चाहते हैं, और यदि आप jQuery 1.4.3 या बाद में उपयोग कर रहे हैं, तो आप ऐसा कर सकते हैं, तो: bind()(docs) के लिए

$('a.myElement').bind('click',false); 

डॉक्स से विधि:

गलत पर तीसरा तर्क करना एक समारोह है कि डिफ़ॉल्ट कार्रवाई होने से रोकता है और बुदबुदाती से घटना बंद हो जाता है जोड़ देती है।

फिर, इसे jQuery 1.4.3 या बाद में आवश्यक है।

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

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