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);
})
})
Приветствуется всякая помощь.
Ответы
Ответ 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()