我在.die()
的文档中看到它说:
为了让.die()正常运行,与它一起使用的选择器必须与最初与.live()一起使用的选择器完全匹配。
jQuery 1.7中的新方法是否具有相同的限制*?
* 实际上并不确定它是否被视为限制或功能
答案 0 :(得分: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时相同的选择器。
答案 1 :(得分:0)
是和否。调用.off将需要模仿.live的语法,但是,不需要selector参数。为特定元素上的所有单击事件调用.off()将取消绑定所有单击事件,包括委派的事件。如果您只想删除特定的委托事件或仅删除委派事件,则仍需要为该委派事件提供选择器,否则也将删除所有其他事件。