2013-02-12 13 views
12

पर क्लिक करें आज मुझे कुछ ऐसा पता चला जो मेरे लिए काफी उलझन में था। मैं बस jQuery के माध्यम से s.th को छिपाने के लिए कोशिश की ... पहले मैं इसJquery mousedown बनाम

$(".specificdiv li:nth-child(3)").click(function(){ 
    $(".anotherdiv").hide(); 
}) 

का उपयोग करने की कोशिश की .... लेकिन यह काम नहीं करता।

$(".specificdiv li:nth-child(3)").mousedown(function(){ 
    $(".anotherdiv").hide(); 
}) 

किसी को भी मुझे बता सकते हैं क्यों mousedown क्लिक करने के बजाय काम करता है:

एक समय के बाद मैं इसे इस तरह की कोशिश की? पता लगाने के लिए

संपादित

anotherdiv संपादित में मज़ा नहीं आएगा।

+0

क्या आप संदर्भ में समस्या दिखा सकते हैं? –

+0

मान लीजिए यह सिर्फ उदाहरण सामग्री है, लेकिन '$ ("। Anotherdiv ")। छुपाएं();' '(" एक और ") जैसा नहीं है। छुपाएं();' – David

+0

पोस्ट एचटीएमएल कोड को छोड़ दें। जो मैं देखता हूं, उससे दोनों काम करना चाहिए, जब तक कि आप माउस के बिना उस से बाहर खींचें। असल में 'क्लिक करें' = 'mousedown' +' mouseup'। –

उत्तर

18

संभावित कारण:

  1. घटना mousedownclick से पहले निष्पादित करता है, तो पहले पहले आओ सेवा करते हैं।
  2. तत्व पहले से ही click ईवेंट हो सकता है, जो इसे होने से रोकता है, कहता है कि फ़ंक्शन पहले निष्पादित होता है और इसमें return false कथन है।

अब से आप mousedown का उपयोग कर रहे हैं, जो इस तत्व के लिए असाइन नहीं किया गया है, इसमें कोई विवाद नहीं है। यह एक कारण हो सकता है, क्योंकि आपने पूर्ण कोड पोस्ट नहीं किया है। सही करने के लिए स्वतंत्र महसूस करें। :)

एक छोटे से नोट पर, आपके पास पहले कोड में $(".anotherdiv").hide(); और दूसरे कोड में $(".another").hide(); है, कक्षा में div गुम है। क्या यही समस्या है?

+0

यहां तक ​​कि यदि तत्व के पास एक और क्लिक ईवेंट हैंडलर है, तो यह दोनों को ट्रिगर करना चाहिए। तो, यह समस्या नहीं है। इसके अलावा, यहां तक ​​कि अगर मूसडाउन क्लिक से पहले निष्पादित करता है, तो मूसडाउन घटना को हटाने से निश्चित रूप से क्लिक ईवेंट सामान्य रूप से आग लग जाएगा। तो, मुझे लगता है कि यह कारण नहीं है। – deadlock

+0

क्या होगा यदि अन्य क्लिक हैंडलर को पहली वरीयता दी जाती है और इसमें 'झूठी झूठी' कथन है? उत्तर में इसे अपडेट किया गया।:) –

+0

मुझे लगता है कि एक क्लिक हैंडलर को अन्य हैंडलर से पहले इसे लिखकर पहली वरीयता दी जा सकती है। और यहां तक ​​कि यदि आप पहले क्लिक हैंडलर में झूठी वापसी करते हैं, तो उसे अन्य हैंडलर को फायरिंग से नहीं रोकना चाहिए। – deadlock

-1

वास्तव में जब आप बटन दबाते हैं तो mousedown ईवेंट ट्रिगर होता है, यहां तक ​​कि आप बटन को भी नहीं देते हैं। क्लिक करें माउसअप की तरह है, जब आप बटन को ऊपर जाने देते हैं।

आपके कोड में आपके पास है: ".anotherdiv" और ".another" क्या यह आपकी त्रुटि हो सकती है?

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