web-dev-qa-db-fra.com

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

Aidez-moi, s'il vous plaît. C'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 )). Descripteur || i.handler) .apply n'est pas une fonction

Le code qui cause cela est:

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

This is an image of the error

42
TaGiang

Dans mon cas, l'erreur était due à la liaison d'événements à des fonctions qui n'existaient pas. J'avais supprimé 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);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<span class="my-button">Click me</span>

Il produira:

Uncaught TypeError: ((n.event.special [g.origType] || (valeur intermédiaire )). Handle || g.handler) .apply n'est pas une fonction

40
smoksnes

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

Un de mes collègues a codé l'événement deux fois et je l'ai résolu (défi imbécile au fait).

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 () {});
9
Edwin Mendez

Dans mon cas j'avais tapé 

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

Quand j'avais voulu taper:

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

changer cette click en on a effacé l'erreur.

3
a20

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

1
Avinash Jain

J'ai rencontré le même problème récemment. J'ai trouvé que c'était mon erreur de gérer les é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 ça aide.

1
SamT

La seule solution pour moi était de renvoyer false à la fin.

var button = $('<button>').click(function () {
    // do something
    return false;
});

Voir cette question . Cela avait à voir avec la propagation.

1
Fabian Picone

Une autre façon dont j'ai obtenu cette erreur est de mettre distraitement une fonction où un nom de fonction devrait aller:

faux:

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

droite:

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

aussi à droite:

$('.foo').click(triggerBarClick);

function triggerBarClick() {
  $('.bar').trigger('click');
}
1
tated

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, lorsque vous redimensionnerez la fenêtre ultérieurement, jQuery recherchera l’élément et lançera une erreur s’il ne le trouve pas.

0
iamsangeeth

Dans mon cas "{passive: true}" a causé le problème:

$('#defaultSearchbar .dropdown-menu li').on('click', function () {
     //Something here, not important
}, { passive: true });

Uncaught TypeError: ((i.event.special [f.origType] || {}). Handle || f.handler) .apply n'est pas une fonction

Fixé en l'enlevant:

$('#defaultSearchbar .dropdown-menu li').on('click', function () {
     //Something here, not important
});
0
Önder Lop

Je suppose que c'est un peu tard, mais à quiconque rencontre ce problème: vérifiez votre code html pour plusieurs importations jQuery. Toute importation supplémentaire risque de gâcher les handles/plugins/etc.

0
Jan

Avait la même erreur en déclarant des fonctions qui n'existaient pas encore, même si je ne les ai pas appelées simplement déclarés. Peut-être que c'est votre cas

0
E.Murzaev