Подтвердить что ты не робот

Uncaught TypeError: Object [object Object] не имеет метода 'on'

Может ли кто-нибудь помочь мне понять это?

Когда я использую последнюю (или новую) версию jQuery, малый script ниже работает отлично. Однако, когда я использую более старые версии jQuery, мой script говорит, что функция on не существует.

Вот мой script, который не работает со старыми версиями 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);           
    })
})

Приветствуется всякая помощь.

4b9b3361

Ответ 1

Вы должны использовать bind вместо on, поскольку on был введен только в 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);           
    })
})

Ответ 2

Вы можете использовать delegate(), например:

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

Это эквивалентно следующему коду, написанному с помощью on():

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

Ответ 3

Вы должны использовать jQuery версии 1.7+ для использования on(). bind() устарел.

Ответ 4

Измените функцию on на bind:

.children().on("click",function()
до
.children().bind("click",function()