28

谁能帮我解决这个问题?

当我使用最新(或较新)版本的 jQuery 时,下面的小脚本可以正常工作。但是,当我使用旧版本的 jQuery 时,我的脚本说该on函数不存在。

这是我的脚本,它不适用于旧版本的 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);           
    })
})

任何形式的帮助表示赞赏。

4

4 回答 4

75

您必须使用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);           
    })
})
于 2012-06-06T10:25:00.190 回答
3

您可以使用delegate(),例如:

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

这相当于使用以下代码编写的on()

$("table").on("click", "td", function() {
  $(this).toggleClass("chosen");
});
于 2013-03-14T03:46:47.760 回答
1

您必须使用 jQuery 版本 1.7+ 才能使用on(). bind()已弃用。

于 2013-02-27T15:43:48.520 回答
0

on将函数更改为bind

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

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

于 2013-04-21T15:19:50.807 回答