2009-01-15 15 views
45

नीचे दिए गए कोड में, क्यों फ़ंक्शन काम खोलता है लेकिन बंद फ़ंक्शन नहीं है?क्लिक के साथ jQuery में एक फ़ंक्शन को कॉल करना()

$("#closeLink").click("closeIt"); 

कैसे कर तुम सिर्फ कॉलclick() बजाय में एक समारोह को परिभाषित यहclick() विधि में?

<script type="text/javascript"> 
    $(document).ready(function() { 
     $("#openLink").click(function() { 
      $("#message").slideDown("fast"); 
     }); 
     $("#closeLink").click("closeIt"); 
    }); 

    function closeIt() { 
     $("#message").slideUp("slow"); 
    } 
</script> 

मेरे HTML:

Click these links to <span id="openLink">open</span> 
and <span id="closeLink">close</span> this message.</div> 

<div id="message" style="display: none">This is a test message.</div> 

उत्तर

115
$("#closeLink").click(closeIt); 

मान लीजिए कि आप अपने कार्य यह करने के लिए जैसे कि, closeIt(1, false) कुछ आर्ग गुजर कॉल करने के लिए चाहते हैं। फिर, आपको एक अनाम कार्य बनाना चाहिए और इससे closeIt पर कॉल करना चाहिए।

$("#closeLink").click(function() { 
    closeIt(1, false); 
}); 
+9

उद्धरण बंद से हटा दिए गए हैं (यह मुझे उसको ग्रोक करने में बहुत लंबा लगा, इसलिए किसी और की मदद करने के लिए एक टिप्पणी जोड़ना)। – NatGordon

+1

@ टियागो क्यों नहीं()? क्या होगा यदि आप तर्क पारित करना चाहते हैं? – Damon

+15

@ डैमन: क्योंकि इस तरह से फ़ंक्शन को कॉल किया जाएगा और इसकी वापसी क्लिक फ़ंक्शन पर पास की जाएगी। यदि आप तर्क पारित करना चाहते हैं, तो आपको ऐसा कुछ करना होगा: $ ("# closeLink")। क्लिक करें (function() {closeIt (कुछ, तर्क, आप, 'चाहते हैं');}); – Tiago

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