javascript的html对象
您好,我对jquery中的.html函数有问题。每次我从代码中删除脚本并再次粘贴它时,事件侦听器都不再工作。您能否帮助我在html中重新粘贴后如何生成反应脚本。您可以使用该方法注册事件处理程序,即使重新创建了相应的DOM元素,该事件处理程序也会保留该脚本。例如:javascript的html对象,javascript,jquery,html,Javascript,Jquery,Html,您好,我对jquery中的.html函数有问题。每次我从代码中删除脚本并再次粘贴它时,事件侦听器都不再工作。您能否帮助我在html中重新粘贴后如何生成反应脚本。您可以使用该方法注册事件处理程序,即使重新创建了相应的DOM元素,该事件处理程序也会保留该脚本。例如: $(function() { $('#someid').live('click', function() { // }); }); 您可以使用.live()方法设置事件。比如: $("#submit_b
$(function() {
$('#someid').live('click', function() {
//
});
});
您可以使用
.live()
方法设置事件。比如:
$("#submit_button").live("click",function(e){
});
这样,如果使用.html()
方法从页面添加/删除html,事件将保持不变
希望对您有所帮助。我猜您正在使用jquery的.html()函数更改某个容器的内部html,并且您分配的事件在该过程后丢失。您可以采取两种方法:
如果内容没有更改,请使用.detach()函数删除并重新插入元素。.detach()函数保留附加到分离元素的事件处理程序和事件处理程序。但是,如果要插入不同的内容,请使用.live()事件分配事件。将具有相同选择器的元素插入dom时,将重新创建分配给.live()的事件 以此为例:
$('a.button').live('click', function(){
//anchor tag clicked.
alert('Button has been clicked');
});
.live()
:
将处理程序附加到所有事件的事件
与当前值匹配的元素
选择器,现在和将来
.live()方法能够影响
尚未添加的元素
通过使用事件
代表团
这意味着您可以使用.html()
从页面中添加和删除html,您的事件仍将执行
有关.live()的更多信息,请访问网站
举一个简单的例子。尤其是,“不再有效”这一说法不太具有描述性。准确描述您期望发生的事情和实际发生的事情,包括任何错误消息。当询问代码时,包括一个。对于网页,包括指向活动页面的链接;另一方面,问题最好是独立的。Jon Skeet在网站上发布了其他指南。另外,请查看常见问题解答并潜伏一点。谢谢你的评论,伙计。我会把我的问题改得更好。我想这就是我想要的答案。我希望它能起作用。谢谢你的回答,伙计。是的,情况是我更改了某个容器的内容(.html()),然后当它粘贴回来时(.html())事件处理程序已经丢失。我尝试使用.detach函数并将其放入变量中,但无法使用.html()将其粘贴回。如何将.detach对象放入javascript变量中?jquery的.html()和其他dom操作方法的区别在于.html()函数将字符串转换为dom。因此,它无法保存任何事件。可以使用.append()函数将元素插入回dom。希望能有帮助。var elements=$(“您的选择器”).detach()$(“您的元素父标记选择器”).append(元素);你好,老兄,我已经解决了这个问题。我误解了.detach和.html之间的区别。我对.html所做的就是这样。var a=$(container.html()$(容器)。空的()$(容器).html(a);在.detach中时,它不会删除元素,因为使用.detach将删除元素而不是获取其内容。我通过-var a$(container.contents().detach()解决了这个问题$(容器).html(a);顺便说一下,谢谢你的帮助,伙计。