Javascript 当我们为元素设置新的html时,如何保存事件处理程序?
我有简单的html标记:Javascript 当我们为元素设置新的html时,如何保存事件处理程序?,javascript,jquery,events,Javascript,Jquery,Events,我有简单的html标记: <div id="cont">Some text here <div class="wrap" style="border: 1px solid black;display: inline;"> block element here </div> and another text</div> 我希望单击事件将在您被d1 div单击时触发,但当我们单击时。将其包装以避免再次触发。我理解它为什么会有这样的行为,但如何
<div id="cont">Some text here
<div class="wrap" style="border: 1px solid black;display: inline;"> block element here
</div> and another text</div>
我希望单击事件将在您被d1 div单击时触发,但当我们单击时。将其包装以避免再次触发。我理解它为什么会有这样的行为,但如何解决呢?
在我的代码中,我不能在$cont.html$cont.html.replace/text/g之后设置d1的单击事件,因为如果设置了事件,我现在不会在执行时设置。
你可以试试这个例子
感谢回复,这是一个非常有用的函数。您应该使用该方法绑定
您应该使用该方法进行绑定
演示:
如果不确定元素的状态,则始终可以使用live绑定事件:
$(function(){
$(".wrap").live('click', function(){
$("#cont").html($("#cont").html().replace(/text/g, "letter"));
alert("Click!");
});
$("#d1").live('click', function(){
alert("#d1 clicked!");
});
});
与绑定的事件仍将应用于最初调用代码后找到的实例
演示:演示:
如果不确定元素的状态,则始终可以使用live绑定事件:
$(function(){
$(".wrap").live('click', function(){
$("#cont").html($("#cont").html().replace(/text/g, "letter"));
alert("Click!");
});
$("#d1").live('click', function(){
alert("#d1 clicked!");
});
});
与绑定的事件仍将应用于最初调用代码后找到的实例
演示:正如GvS所说,绑定事件。当您不需要它时,您可以解除绑定。正如GvS所说,绑定事件。当您不需要它时,可以解除绑定。是否可以将.live和.one事件设置器合并?我想使用.live设置事件处理程序,但它只能启动一次。@Kai不确定,但您可以将$this.die“click”放在处理程序函数的末尾。我从@Nick Craver这里找到了很好的解决方案-是否可以将.live和.one事件设置器组合起来?我想使用.live设置事件处理程序,但它只能启动一次。@Kai不确定,但您可以将$this.die“click”放在处理程序函数的末尾。我从@Nick Craver这里找到了很好的解决方案-
$(function(){
$(".wrap").live('click', function(){
$("#cont").html($("#cont").html().replace(/text/g, "letter"));
alert("Click!");
});
$("#d1").live('click', function(){
alert("#d1 clicked!");
});
});