Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/74.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript的html对象_Javascript_Jquery_Html - Fatal编程技术网

javascript的html对象

javascript的html对象,javascript,jquery,html,Javascript,Jquery,Html,您好,我对jquery中的.html函数有问题。每次我从代码中删除脚本并再次粘贴它时,事件侦听器都不再工作。您能否帮助我在html中重新粘贴后如何生成反应脚本。您可以使用该方法注册事件处理程序,即使重新创建了相应的DOM元素,该事件处理程序也会保留该脚本。例如: $(function() { $('#someid').live('click', function() { // }); }); 您可以使用.live()方法设置事件。比如: $("#submit_b

您好,我对jquery中的.html函数有问题。每次我从代码中删除脚本并再次粘贴它时,事件侦听器都不再工作。您能否帮助我在html中重新粘贴后如何生成反应脚本。

您可以使用该方法注册事件处理程序,即使重新创建了相应的DOM元素,该事件处理程序也会保留该脚本。例如:

$(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);顺便说一下,谢谢你的帮助,伙计。