未捕获的TypeError:对象[object Object]没有方法'on'

时间:2012-06-06 10:23:21

标签: jquery onclick bind

任何人都可以帮我解决这个问题吗?

当我使用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 个答案:

答案 0 :(得分: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);           
    })
})

答案 1 :(得分:3)

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

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

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

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

答案 2 :(得分:1)

您必须使用jQuery 1.7+版才能使用on()。 {@ 1}}已被弃用。

答案 3 :(得分:0)

on功能更改为bind

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

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