Javascript 删除DOM元素及其关联的jquery插件和数据
首先,我在元素上使用jquery插件,比如说Javascript 删除DOM元素及其关联的jquery插件和数据,javascript,jquery,jquery-plugins,Javascript,Jquery,Jquery Plugins,首先,我在元素上使用jquery插件,比如说$('#myElement').usePlugin() 第二,我想销毁JS中可能仍然存在的原始元素和任何插件变量等 第三,创建一个新的#myElement并重做$(“#myElement”).usePlugin() 我在第二步遇到了麻烦。当我执行$('#myElement').remove()时,当我重新创建元素并实例化插件时,会有剩余的奇怪行为 仅供参考:这是我遇到问题的插件:。如果我创建一个表,使其可编辑,一切正常 但是如果我删除表格,重新创建表格
$('#myElement').usePlugin()代码>
第二,我想销毁JS中可能仍然存在的原始元素和任何插件变量等
第三,创建一个新的#myElement
并重做$(“#myElement”).usePlugin()代码>
我在第二步遇到了麻烦。当我执行$('#myElement').remove()
时,当我重新创建元素并实例化插件时,会有剩余的奇怪行为
仅供参考:这是我遇到问题的插件:。如果我创建一个表,使其可编辑,一切正常
但是如果我删除表格,重新创建表格,使其可编辑,我会在字段可编辑的情况下出现奇怪的行为,但当我点击“回车”时,该值不会保存,我会出现以下错误未捕获类型错误:无法读取未定义的属性“触发器”
,我会修改插件中的这一行:
致:
现在,如果要删除该事件,请按名称空间删除它
$(window).off("resize.mindmup");
继续删除并重新创建表,然后在重新初始化插件之前,使用上一行删除窗口大小调整事件。不幸的是,该插件没有内置的销毁方法。因此,您必须撤消插件添加的任何委托或全局事件,例如窗口大小调整事件。一个快速修复方法是删除所有侦听窗口调整大小事件的事件处理程序,但是这显然也会影响此插件以外的代码。因此,仅处理此插件中的多个事件之一,对吗?我必须通过这个过程来处理所有其他事件?这是我看到的唯一一个事件,但是如果有更多的事件,他们将需要同样的处理。您只需要担心添加到表外元素的事件,表上或表内的任何内容都将被清除。remove()
所以我删除了第115行到第121行,因为现在我不需要调整大小,只想测试这是否是此错误的根源。不幸的是它仍然坏了。听起来像插件中的一个bug。。。错误发生在这里:这意味着文本
未定义,这意味着编辑器
不是输入元素。。。。很奇怪。
$(window).off("resize.mindmup");