javascript - 从 DOM 中分离内容

标签 javascript jquery html dom

一般来说,我在页面上有某种带有多个监听器的表单。这些监听器应用于所有文档(例如 jQuery 的 $(document).on("click", ""),目前无法更改。我还需要在模式中显示完全相同的(按结构)形式,并且该表单共享屏幕上主表单的所有js代码。因此这些表单不能一起工作,当它们都处于事件状态时,会导致第二个表单中的按钮单击,例如触发第一个表单中的元素。jQuery的分离几乎是最简单的解决方案为此,但它也会从屏幕上删除所有内容,我想避免这种情况。

有什么方法可以将内容从 HTML DOM 中分离出来,而不需要实际从屏幕上删除内容吗?

我需要的是暂时禁用页面上某些内容的所有事件监听器,并将其从 js-library 选择器的搜索中删除(因此,例如,jQuery 不应该找到任何内容),但内容仍应出现在屏幕。

这真的可能吗?

最佳答案

简短回答:你不能

一些接近您目标的线索:

  1. 您可以尝试使用 Shadow dom 来删除对 js-library 选择器:他们需要使用 ::shadow 后缀 选择器来查找您的内容。
  2. 分离您的内容、克隆它、重新附加它

    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/

相关文章:

html - 如何为 Shiny 应用程序设置主 <html> 标签的属性(在源代码的顶部)

javascript - 我可以像 uglifyjs 那样使用 gradle 缩小然后合并源文件吗?

javascript - 如果用户鼠标移出表格,如何删除按钮?

javascript - 函数调用之间 Angular 变量不会为 "unset"

javascript - 未捕获的语法错误 : Unexpected string

javascript - 回调 : animate complete: called after . Promise().done()

jquery - Bootstrap 如何实现动画滚动位置

python - Selenium Python 如何从 <div> 获取文本(html 源)

Javascript 变量不使用进度条更新

javascript - 相互递归函数 - 练习对我来说没有意义