2016-03-24 7 views
5

onclick मैं एक बटन है कि मैं एक क्लिक श्रोता के लिए संलग्न करने के लिए करना चाहते हैं, लेकिन हर बार कोड चलने पर वह एक कंसोल त्रुटि फेंकताjQuery पंजीकरण त्रुटि

jquery.js:4435 Uncaught TypeError: ((n.event.special[g.origType] || (intermediate value)).handle || g.handler).apply is not a function

यहाँ js कोड कि त्रुटि से चलाता है, पहली पंक्ति ठीक चलाता है, दूसरी पंक्ति एक है कि त्रुटि

$toolbar.off('click', '.btn-save'); // $toolbar is assigned $("#toolbar") on init   
$toolbar.on('click', '.btn-save', function(e){ 
    saveData(0); 
}); 

मुझे क्या confuses है का कारण बनता है, अगर मैं मैन्युअल रूप से सांत्वना के माध्यम से कोड की कि बिट चलाने के लिए, मैं कोई त्रुटि प्राप्त

यहाँ एचटीएमएल

<div class="row" id="toolbar"> 
<div class="col-lg-12"> 
    <button type="button" class="btn btn-primary btn-save">Save</button> 
    <button type="button" id="btnCancel" class="btn btn-default btn-cancel">Cancel</button> 
</div> 
</div> 
+2

आप डिबगिंग आप किसी और आसानी से चलाने के लिए पर्याप्त कोड की आपूर्ति करना चाहिए मदद चाहते हैं प्रभावित कर सकते हैं। Jsfiddle बनाना एक अच्छा तरीका है ... –

+3

[अनकॉल्ड टाइपरर: ((x.event.special \ [i.origType \] || (इंटरमीडिएट वैल्यू)) का संभावित डुप्लिकेट। हैंडल || i.handler)। आवेदन एक समारोह नहीं है] (http://stackoverflow.com/questions/32231036/uncaught-typeerror-x-event-speciali-origtype-intermediate-value-handl) –

उत्तर

6

मैं इस समस्या पाया है, मेरे श्रोताओं नीचे, वहाँ एक असंबंधित श्रोता है कि मैं संलग्न

$(document).on("click", "#btn-back", Views.Editor.close);

है

यहां समस्या यह है कि Views.Editor.close गलत विधि का नाम है। जब मैं विधि का नाम बदल दिया, त्रुटि गायब

मुझे नहीं पता था कि एक असंबंधित श्रोता दूसरों

+0

इंटरनेट एक्सप्लोरर 11 में इस समस्या पर ठोकर खाई। यह पता चला कि एक अमान्य घटना श्रोता था जिसे मैंने अनदेखा किया है या भूल गया है: '.on ("क्लिक करें", "।") '। दरअसल ऐसा लगता है कि यहां तक ​​कि केवल एक अमान्य श्रोता भी दूसरों की कार्यक्षमता तोड़ सकता है, कम से कम यदि प्रत्येक अपवाद पर स्क्रिप्ट निष्पादन को रोकने के लिए सेट किया गया है। ध्यान दें कि यह त्रुटि jQuery के विकास/पूर्ण संस्करण के साथ भी होती है। – Tacticus

0

आह है। ऐसा लगता है कि यदि आप प्रश्न/समझने की कोशिश कर रहे हैं तो मुझे आपके JQuery पैराम गलत हो सकते हैं।

<div class="row"> 
<div class="col-lg-12"> 
    <button id="save-btn-id" type="button" class="btn btn-primary btn-save">Save</button> 
    <button type="button" id="btnCancel" class="btn btn-default btn-cancel">Cancel</button> 
</div> 
</div> 

js:

डोम घटनाओं

एचटीएमएल पर आइटम के साथ जोड़ दिया जाना चाहिए

$(document).ready(function() { 
    $('#save-btn-id').click(function(evt) { 
    saveData(0); 
    }); 
}); 
+0

या तो काम नहीं करता है, मैंने सभी 3 की कोशिश की है क्लिक असाइनमेंट के प्रकार जिन्हें मैं जानता हूं, $ btn.click (func), $ btn.on ('क्लिक', func.on (और $ toolbar.on ('क्लिक करें', '#btn', func); – iceman2992

+0

ध्यान दें कि मेरा एचटीएमएल बदल गया है –

0

इस प्रयास करें: https://jsfiddle.net/jorge182/a1y9abcj/2/

toolbar = $("#toolbar") 


$(toolbar).off('click', '.btn-save'); // $toolbar is assigned $("#toolbar") on init   
$(toolbar).on('click', '.btn-save', function(e){ 
    saveData(); 
}); 


function saveData(){ 
    alert(); 
} 
+0

हम्म, किसी कारण से जब मैं इसे jsfiddle – iceman2992

+0

पर आज़माता हूं तो कृपया फिर से प्रयास करें। –

+0

शायद कोड विरासत है, और आप इस पर बहुत गहराई से नहीं जाना चाहते हैं, लेकिन मुझे एक पंक्ति में एक क्रिया को निष्क्रिय करने और अगली पंक्ति में सक्रिय करने में बहुत अधिक समझ नहीं आती है ... मैं उस रेखा को हटा दूंगा जहां सेट बटन – cralfaro

0

मैं क्या में देख से jQuery उपरोक्त कोड उदाहरण में उनके .off() फ़ंक्शन & के लिए एपीआई दस्तावेज़, ऐसा लगता है कि फ़ंक्शन को .off() फ़ंक्शन के तीसरे पैरामीटर के रूप में पारित नहीं किया जा रहा है। तो यह संभव है कि jQuery लाइब्रेरी शिकायत कर रही है कि इसे हटाने के लिए कोई फ़ंक्शन नहीं मिल रहा है।

देखें: http://api.jquery.com/off/

इस & देखें कि क्या वह मदद करता है का प्रयास करें:

function clickListener(e){ 
    saveData(0); 
}; 

$toolbar.off('click', '.btn-save', clickListener); 
$toolbar.on('click', '.btn-save', clickListener); 
+0

मैंने बस कोशिश की, दुर्भाग्य से यह काम नहीं करता है। मैंने .off() कमांड को टिप्पणी करने का भी प्रयास किया, और यह अभी भी एक ही परिणाम है – iceman2992

+0

कोड इस jsfiddle पर v 2.2.1 के साथ ठीक चलाता है: https://jsfiddle.net/briankueck/75ucysvx/ – Clomp

+0

इसे देखते समय लिंक: http://code.jquery.com/jquery-2.2.1.js मुझे 4731-2 लाइन पर कोड मिला। आपको उन लाइनों के सामने एक डीबगर डालना पड़ सकता है - आपके लोकहोस्ट jquery.js फ़ाइल में - यह देखने के लिए कि कोड की इस पंक्ति में मूल्य क्या दिखाई देते हैं: "ret = ((jQuery.event.special [handleObj.origType] || {}) .handle || handleObj.handler) .apply (matched.elem, args); " – Clomp

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