使用.html()来替换替换元素,有没有一种方法可以保留事件
Using .html() to replace replace element, is there a way to keep events?
我正在使用.html()
来替换jQuery元素的内部html。据我所知,html正在使用的父元素中的原始元素已被删除。如果您维护了对原始元素的javascript引用,您可以稍后重新插入它,但缺少它的事件。
有没有一种方法可以通过分离原始元素.detach()
来进行替换,以便它仍然保留其事件而不是删除它?
您应该使用live将事件永久绑定到绑定后进入DOM的元素。示例:
$('.element').live('click', function(){
....
});
或者如果您使用的是jQuery 1.7+
$('.element').on('click', function(){
....
});
如果您使用的是jQuery 1.4+,则可以使用.destrict()方法。
http://api.jquery.com/detach/
var x=$('.element').destrict();
除.destrict()保留所有与已移除元素相关联的jQuery数据外,.destrict)方法与.remove()方法相同。当移除的元素稍后要重新插入DOM时,此方法非常有用。
Ben Alman的jQuery replaceText插件将允许您替换文本,如果您查看他的网站(http://benalman.com/projects/jquery-replacetext-plugin/),它特别提到了以下内容:
那么,为什么不设置.html(new_text)呢?虽然使用jQuery.html()方法是替换大型html结构中文本的最快方法之一,但当您这样做时,所有绑定到任何子元素的事件处理程序和引用都会丢失。这不好!
现在,如果您没有事件处理程序或对这些元素的引用,只需使用标准字符串替换来更新.html(),一切都会非常快!但是,如果您确实有事件处理程序和元素引用,您将需要一些"更智能"的东西。。喜欢这个插件。
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- 从我的控制器返回一个不同于200的代码以触发ajax错误,这被认为是一种好的做法吗
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- 有没有一种方法可以仅使用HTML/CSS来隐藏基于特定值的数据单元格
- 有没有一种方法可以从URL跟踪请求的域
- 有没有一种方法可以列出Ember.Object的所有绑定
- 有没有一种方法可以获得three.js的最小/lite版本
- 有没有一种方法可以在没有文档或jQuery的情况下使用javascript解码html实体
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- Javascript用另一种样式替换一种样式
- 使用.html()来替换替换元素,有没有一种方法可以保留事件
- 有没有一种快速的工具可以在不剥离JavaScript源代码中的注释的情况下执行恒定的替换?
- 在javascript中替换bind的一种更快更干净的方式
- 尝试创建一种机制,在javascript中找到段落中的单词并将其替换为另一个单词
- 用另一种颜色替换图像/精灵中的特定颜色
- 是否有一种快速的方法来替换IE中的大型字体?
- 有没有一种方法可以替换浏览器中的Javascript库链接