一般来说,我在页面上有某种带有多个监听器的表单。这些监听器应用于所有文档(例如 jQuery 的 $(document).on("click", ""),目前无法更改。我还需要在模式中显示完全相同的(按结构)形式,并且该表单共享屏幕上主表单的所有js代码。因此这些表单不能一起工作,当它们都处于事件状态时,会导致第二个表单中的按钮单击,例如触发第一个表单中的元素。jQuery的分离几乎是最简单的解决方案为此,但它也会从屏幕上删除所有内容,我想避免这种情况。
有什么方法可以将内容从 HTML DOM 中分离出来,而不需要实际从屏幕上删除内容吗?
我需要的是暂时禁用页面上某些内容的所有事件监听器,并将其从 js-library 选择器的搜索中删除(因此,例如,jQuery 不应该找到任何内容),但内容仍应出现在屏幕。
这真的可能吗?
最佳答案
简短回答:你不能
一些接近您目标的线索:
- 您可以尝试使用 Shadow dom 来删除对
js-library 选择器:他们需要使用
::shadow
后缀 选择器来查找您的内容。 分离您的内容、克隆它、重新附加它
var $yourcontent = $(".yourcontentselector").detach(); var $clone = $yourcontent.clone(); //clone the content but not events $clone.appendTo("body"); //later $clone.remove(); $yourcontent.appendTo("body");
我假设您正在使用 JQuery 并且您的内容直接进入正文。 希望对您有帮助
关于javascript - 从 DOM 中分离内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35131125/