2

我在文档中看到.die()它说:

为了使 .die() 正常工作,与它一起使用的选择器必须与最初与 .live() 一起使用的选择器完全匹配。

jQuery 1.7 中的新方法是否有同样的限制*?

*实际上不确定它是否被视为限制或功能

4

2 回答 2

4

限制实际上仍然存在。

现场演示的限制

$(".bind").click(function(){
    $(".clone").live("click",function(){
        $(this).clone().insertAfter(this);
    });
});

$(".unbind").click(function(){
    $(".clone,.somethingelse").die("click");
});

正在做演示

$(".bind").click(function(){
    $("body").on("click",".clone",function(){
        $(this).clone().insertAfter(this);
    });
});

$(".unbind").click(function(){
    $("body").off("click",".clone");
});

演示的限制

$(".bind").click(function(){
    $("body").on("click",".clone",function(){
        $(this).clone().insertAfter(this);
    });
});

$(".unbind").click(function(){
    $("body").off("click",".clone,.somethingelse");
});

如您所见,您需要指定与使用 live 相同的选择器。

于 2011-11-07T21:25:36.017 回答
0

是和不是。调用 .off 需要模仿 .live 的语法,但是,选择器参数不是必需的。为特定元素上的所有点击事件调用 .off() 将取消绑定所有点击事件,包括委托的点击事件。如果您只想删除特定的委托事件,或者只删除委托事件,您仍然需要为该委托事件提供选择器,否则所有其他事件也将被删除。

于 2011-11-07T21:18:22.120 回答