2013-02-12 18 views
5

कहलाए बिना चल रहा है, मुझे आश्चर्य है कि, जैसे ही पृष्ठ लोड होता है, फ़ंक्शन btw_bijtellen() कहा जाता है। मैं क्लिक करके इसे कहते हैं ...जावास्क्रिप्ट फ़ंक्शन

var $ = function (id) { 
    return document.getElementById (id); 
} 

function btw_bijtellen() { 
    window.alert("we want to calculate something after clicking th button"); 
} 

$("bereken").onclick = btw_bijtellen(); 

उत्तर

13

आप () जो निष्पादित करने के लिए समारोह का कारण बनता है जोड़ दिया है चाहता था।

उदाहरण के लिए:

var myFunc1 = function() { 
    alert('Hello'); 
}(); // <---() causes self execution 

var myFunc2 = function() { 
    return 5 + 5; 
}; 

var some_value = myFunc2(); // <--- Again() causes execution (you'd expect this one) 

आपके मामले में, टिप्पणी में उल्लेख किया है के रूप में आप मूल रूप से onclick कह रहे समारोह के रिटर्न मान पर अपने मूल्य निर्धारित करने के लिए।

यदि आप () छोड़ते हैं तो इसे अपेक्षित के रूप में चलाया जाना चाहिए।

+0

वैसे पर एक रीड है event.data

var function = btw_bijtellen(event) { var data = event.data; console.log(data); var key1 = event.data.key1; console.log(key1); // this will output value1 } 

से अपने मानकों को प्राप्त कर सकते हैं, इसका मतलब है कि आपके ऑनक्लिक हैंडलर को "अपरिभाषित" असाइन किया गया है - क्योंकि इस फ़ंक्शन को चलाने से "अपरिभाषित" इस परिणाम को क्लिक करने के लिए असाइन करता है। –

+0

@Lloyd तो केवल तेंदुए के बिना केवल शेष (जो केवल पत्ते ही असाइन कर रहे हैं?) बताते हैं या कॉल करते हैं? – pwp

+0

हां घोषित या कॉल करना। असाइनमेंट के लिए बस उन्हें छोड़ दें। – Lloyd

0

फ़ंक्शन नाम के बाद () डालकर यह है कि आप इसे कैसे कॉल करते हैं।

यदि आप btw_bijtellen को onclick पर असाइन करना चाहते हैं तो प्रश्न में कोड की अंतिम पंक्ति से () हटाएं।

वहाँ () के साथ, आप फ़ंक्शन को कॉल और उसके वापसी मानonclick को बताए जाते हैं। चूंकि उस फ़ंक्शन में return कथन नहीं है, यह मान undefined होगा जो आप नहीं चाहते हैं।

3

आप समारोह क्लिक पर कहा जा तो का उपयोग

आप तर्क पारित करने के लिए की जरूरत है, तो आप के रूप में निर्दिष्ट करने की आवश्यकता (Wao से क्वेरी के अनुसार)

$("bereken").on('click', btw_bijtellen); 

अद्यतन चाहते हैं दूसरा तर्क $.on(), event हैंडलर

$("bereken").on('click', {key1: value1, key2: value2, keyn: valuen}, btw_bijtellen); 

जहां में डेटा हो जाता है आप @bert के लिए, इस लिंक jQuery $.on() api

+0

क्या होगा यदि आप 'btw_bijtellen' फ़ंक्शन पर कोई तर्क पारित करना चाहते हैं? –

+1

@ वाओ: उम्मीद है कि अद्यतन उत्तर आपकी मदद करता है – asifsid88