28 votes

TypeError non intercepté: l'objet [objet objet] n'a pas de méthode "on"

Quelqu'un peut-il m'aider à comprendre cela?

Lorsque j'utilise la dernière version (ou une version récente) de jQuery, le petit script ci-dessous fonctionne correctement. Cependant, lorsque j'utilise des versions plus anciennes de jQuery, mon script indique que la fonction on 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 aide est appréciée.

75voto

Aelios Points 3121

Vous devez utiliser bind au lieu de on , car on été introduit uniquement dans jQuery 1.7 .

 $(document).ready(function () {
    $(".theImage").bind("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);           
    })
})
 

3voto

raycchan Points 224

Vous pouvez utiliser delegate() , par exemple:

 $("table").delegate("td", "click", function() {
  $(this).toggleClass("chosen");
});
 

Cela équivaut au code suivant écrit en utilisant on() :

 $("table").on("click", "td", function() {
  $(this).toggleClass("chosen");
});
 

1voto

Mohammad Rahmani Points 112

Vous devez utiliser jQuery version 1.7+ pour utiliser on() . bind() est déconseillé.

0voto

Modifiez la fonction on en bind :

.children().on("click",function()
à
.children().bind("click",function()

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X