取消设置数据而不丢失事件处理程序

时间:2012-08-20 15:56:48

标签: jquery

有例如

<div>
 <a>anything....</a>
</div>

设置事件处理程序:

$("div a").click(.....)

使用$("div").html('')的后期<div><a>事件处理程序时会丢失。

有没有办法完成这项工作 - 清理内容 - 并让处理程序存在?

3 个答案:

答案 0 :(得分:2)

您可以将处理程序委托给DOM上方的某些内容,例如<body>

$('body').on('click', 'div a', function () {...});

答案 1 :(得分:1)

您可以使用.live():

$("div a").live("click", function(){ 
    alert("Still exists"); 
});  

根据jQuery's documentation的意思是:

  

为现在和将来与当前选择器匹配的所有元素附加事件处理程序。

正如您所见here

答案 2 :(得分:0)

jQuery.delegate会有用吗?给你的链接一个引用(类,ID),你应该保留它的行为。