आपके क्लिक हैंडलर कभी भी फायरिंग नहीं कर रहा है क्योंकि यह आपके तत्व पर कभी भी लागू नहीं होता है। तो जब आप jQuery में ऐसा करते हैं: हैंडलर के लिए फिर
$('.some-class').on('some-event', someFunction);
कि इस घटना के लिए बाध्य होने के लिए, पहली jQuery अपने $('.some-class')
चयनकर्ता को खोजने के लिए है। आपके मामले में, जब आप घटना को बाध्य करते हैं तो #btnParse
को पृष्ठ पर अभी तक नॉकआउट द्वारा प्रस्तुत नहीं किया जाता है। या, यह भी संभव है कि मूल तत्व प्रदान किया जाता है, नष्ट हो जाता है, और फिर दूसरा तत्व प्रस्तुत किया जाता है। इस दूसरे परिदृश्य में, ईवेंट हैंडलर बटन पर नहीं रहेगा।एक वैकल्पिक (जो मैं अनुशंसा नहीं करते) हैंडलर उच्च document
स्तर पर डोम में बाध्य करने के लिए, की तरह है, और केवल करने के लिए फिल्टर की घटनाओं एक आईडी #btnParse
के साथ कुछ में से जो:
$(document).on('click', '#btnParse', function() { console.log('hi'); });
कारण मैं इसकी अनुशंसा न करें क्योंकि यह खराब नॉकआउट अभ्यास है, आपको click
बाइंडिंग का उपयोग कुछ अन्य पोस्ट सुझाए जाने के रूप में करना चाहिए। साथ ही, आप एक आईडी विशेषता का उपयोग कर रहे हैं और यह वास्तव में टेम्पलेटेड गतिशील सामग्री के लिए सामान्य रूप से एक अच्छा विचार नहीं है - केवल कक्षाओं का उपयोग करें जब तक कि आपको एक अद्वितीय स्थिर तत्व के लिए बिल्कुल आईडी की आवश्यकता न हो।
नॉकआउट के क्लिक बाध्यकारी का सही तरीके से उपयोग करने के तरीके के रूप में, एक मुश्किल बात यह है कि आपको यह समझने की आवश्यकता होगी कि कैसे नॉकआउट स्कॉइंग करता है। इसके अलावा
<!-- ko foreach: someCollection -->
<a data-bind="click: $parent.someFunction"></a>
<!-- /ko -->
, अगर: अगर, उदाहरण के लिए, आप एक पाश के अंदर एक क्लिक बाध्यकारी रहे हैं, और आप अपने मुख्य दृश्य मॉडल से हैंडलर चाहते हैं, आप माता-पिता गुंजाइश संदर्भ के लिए है क्योंकि पाश अपने संदर्भ में परिवर्तन है आप जावास्क्रिप्ट संदर्भ है कि अपने हैंडलर के साथ (this
) कार्यान्वित बदलने की जरूरत है, तो आप इस तरह क्लिक हैंडलर बाध्य करने के लिए की जरूरत है: कि सामान के साथ एक सा
<!-- ko foreach: someCollection -->
<a data-bind="click: $parent.someFunction.bind($parent)"></a>
<!-- /ko -->
प्ले और कोई नया प्रश्न पूछ अगर आप अभी भी उलझन में। सौभाग्य!
क्यों नॉकआउट के माध्यम से क्लिक फ़ंक्शन जोड़ना बाध्यकारी क्लिक करें? – Tyrsius
हाँ, मैं कर सकता हूं, और वास्तव में यह काम करता है। हालांकि, मुझे लगता है कि डेटा-बाइंड का उपयोग किसी ऐसे चीज़ के लिए आरक्षित होना चाहिए जो वास्तव में दृश्य मॉडल से संबंधित है। अगर मैं अपने पेज पर तत्वों को आगे बढ़ाना चाहता हूं, तो मुझे ऐसा करने के लिए नॉकआउट पर भरोसा नहीं करना चाहिए। मैं भी नाराज हूं कि यह एक सरल सेटअप है जब यह काम नहीं करता है। –
वैसे जो नोट आप इंगित कर रहे हैं वह डाटाबेस क्लिक फ़ंक्शंस के लिए है, यह jquery क्लिक के बारे में बात नहीं कर रहा है। – Tyrsius