UnCaught TypeError: ((x.event.special || (valeur intermédiaire)). Handle || i.handler) .apply n’est pas une fonction

Aidez-moi, s’il vous plaît. Ceci est une erreur lorsque j’utilise jQuery dans ASP.NET MVC.

UnCaught TypeError: ((x.event.special [i.origType] || (valeur intermédiaire)). Handle || i.handler) .apply n’est pas une fonction Uncaught TypeError: ((x.event.special [i.origType ] || (valeur intermédiaire)). handle || i.handler) .apply n’est pas une fonction

Le code qui provoque ceci est:

 $('#btnClick').click(function(){ //code }) 

Ceci est une image de l'erreur

Dans mon cas, l’erreur était due à la liaison d’événements à des fonctions qui n’existaient pas. J’avais enlevé des fonctions que je ne savais pas liées aux événements.

Voir l’extrait ci-dessous:

 var foo = { bar1: function(){ alert('working'); } }; // Working $('body').on('click', '.my-button', foo.bar1); // Not Working because bar2 doesn't exist $('body').on('click', '.my-button', foo.bar2); 
  Click me 

Si cela est utile à quiconque, cela peut également être dû au fait qu’une fonction de gestionnaire d’événement est déclarée deux fois.

Un de mes collègues a codé l’événement à deux resockets et j’ai résolu le problème.

Par exemple, si vous avez une faute de frappe:

 $(document).on('change', '#selectInput').on('change', '#selectInput', function () {}); 

Doit être:

 $(document).off('change', '#selectInput').on('change', '#selectInput', function () {}); 

Dans mon cas j’avais tapé

 $('body').click('click','.delete_item',function(e){}) 

Quand j’avais l’intention de taper:

 $('body').on('click','.delete_item',function(e){}) 

changer ce click pour supprimer l’erreur.

J’ai rencontré le même problème récemment. J’ai trouvé que c’était mon erreur dans la gestion des événements jquery. Au lieu de

 $('#btnClick').click(function(){ //code }) 

Essaye ça,

 $('#btnClick').on('click', function(){ //code }) 

Cela a fonctionné pour moi. J’espère que cela aide.

Une autre façon d’obtenir cette erreur est de mettre par erreur une fonction où un nom de fonction doit aller:

faux:

 $('.foo').click($('.bar').sortinggger('click')); 

droite:

 $('.foo').click(function () { $('.bar').sortinggger('click'); }); 

aussi bien:

 $('.foo').click(sortingggerBarClick); function sortingggerBarClick() { $('.bar').sortinggger('click'); } 

Dans mon cas, cela a fonctionné après avoir déclaré la délégation dans $(document).ready( function() {}) ;

J’ai eu un événement lié à un sélecteur qui n’existait plus.

$(document).on('click', '.js-test', App.test);

J’ai supprimé le div .js-test et j’ai oublié. Cela provoquait l’erreur de ma part.

Je suppose que c’est un peu tard, mais pour tous ceux qui rencontrent ce problème: vérifiez votre code html pour plusieurs importations jquery. Toute importation supplémentaire peut endommager les descripteurs / plugins / etc enregistrés précédemment.

Pour moi, cela se produit lors du redimensionnement de la fenêtre. Mon collègue avait écrit un événement de redimensionnement sur un élément qu’il avait ensuite supprimé. Ainsi, lors du redimensionnement de la fenêtre, jQuery vérifiera l’élément et émettra une erreur s’il n’a pas pu le trouver.

Le seul correctif pour moi était de retourner false à la fin.

 var button = $(' 

Voir cette question . Cela concernait la propagation.

La liaison de plusieurs événements à un seul identifiant ou à une seule classe, ou à une liaison incorrecte des événements peut provoquer ce problème.

Dans mon cas, j’ai eu cette erreur à cause de cette erreur:

 $('body').on('change', '.btnAddNewRow').click(function () {