Uncaught TypeError: Object [object object] n'a pas de méthode "on"
Quelqu'un peut m'aider à comprendre cela ?
Lorsque j'utilise la dernière version (ou plutôt neuf) version de jQuery, le petit script ci-dessous fonctionne très bien. Cependant, lorsque j'utilise les anciennes versions de jQuery, mon script dit que le on
fonction n'existe pas.
Voici mon script qui ne fonctionne pas avec les anciennes versions de jQuery:
$(document).ready(function () {
$(".theImage").on("click", function(){
//In the event clicked, find image, fade slowly to .01 opacity
$(this).find("img").fadeTo("slow", .01).end()
//Then, of siblings, find all images and fade slowly to 100% opacity
.siblings().find("img").fadeTo("slow", 1);
})
})
Toute sorte d'aide est appréciée.
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser
bind
au lieu deon
, commeon
n'a été introduite dans jQuery 1.7..on()
)ne fonctionne pas avec les anciennes version de jQuery... donc cette réponse est très bienbind
eton
fonction de la même manière. Pas de sélecteur est passé àon
, qui serait la cause de déléguer le gestionnaire d'événements.Vous pouvez utiliser
delegate()
, par exemple:C'est équivalent au code suivant écrit en utilisant
on()
:delegate()
est pas équivalent à l'OP de l'utilisation deon()
dans la question (il l'attache, l'élément directement à la.theImage
, où que vous déléguez à un autre élément).delegate()
a été remplacé paron()
Vous devez utiliser la version jQuery 1.7+ d'utiliser
on()
.bind()
est obsolète.Changer le
on
fonction debind
:.children().on("click",function()
à
.children().bind("click",function()