- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
假设我的文档中有一组元素,它们是单个对象的子元素。这些元素中的每一个都使用不同的参数注册一个新的事件监听器。如果我丢弃父对象,是否需要手动取消注册所有 eventListener
?或者浏览器是否跟踪所有事件监听器并在我从 DOM 中删除元素时丢弃它们?我问的原因是因为跟踪所有事件然后调用 removeEventListener
非常痛苦。看起来浏览器应该足够聪明,可以解决这个问题,但如果不这样做,我恐怕会泄漏内存。
Ví dụ:
var elements = parent.childNodes;
var listeners = [];
for (var i = 0; i
listeners.push(elements[i].addEventListener('click',function() { alert(i); }));
}
及以后:
for (var i = 0; i
elements[i].removeEventListener(listeners[i]); // is this really required?
}
parent.parentNode.removeChild(parent);
典型的方法是什么?我意识到一种简单的方法是将事件监听器引用存储在元素本身上,但我想知道修改元素的类型是否会导致额外的性能问题?
câu trả lời hay nhất
在现代浏览器中,在从 DOM 中删除元素之前不需要删除事件监听器。如果在您的 javascript 中的其他地方没有对该特定 DOM 元素的直接引用(例如存储在 JS 变量中的 DOM 元素引用),那么该 DOM 元素将在删除后被垃圾回收。
DOM GC 足够聪明,知道事件监听器一旦从 DOM 中删除,就不会被视为对该 DOM 元素的引用(因为当它从 DOM 中删除时,DOM 事件不会发生)。
关于javascript - element.parentNode.removeChild(element) 之前是否需要 element.removeEventListener()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26442041/
var topClick = function() { child = this.parentNode.parentNode.parentNode.parentNode; child.pare
在我的代码中,函数 displayUserTable 将一些名为 tUserBlock 的 div 附加到名为 centralWindow 的主 div。当您单击 tUserBlock 时,会从名为
这是一种病态的情况,但假设我有以下 HTML: [...] 我有一个表格的引用,例如 var form = document.getElementById(
我正在使用以下代码片段来更新表中的某些文本框值。 ProjectName Block .WorkProgressMilestone Completion
我有一个创建 HTML 表格的函数: makeHTMLTable: function(array){ var table = document.createElement('table');
我已经开始使用 d3,此时我正在编辑给定的脚本以满足新的要求。我尝试访问变量,但无法访问它。有人可以帮我吗? 问题出在第 5 行,我无法获取“this.parentNode”,但我需要它。 有人能指出
我正在通过为自己设置一些小练习来练习基本的 JS 技能。在这个中,我有一个列表 s 位于 div 内。练习的目的是包装每个 在一个 div 中。我正在使用replaceChild在这种情况下。 奇怪
我的 javascript 程序基本上创建一系列图像并随机选择一个图像并将其 src 设置为特定路径。然而,由于某种原因,代码有时似乎会卡住。在我的程序中,我调用其中一个图像的 element.par
我有以下带有 A 框架的 html 结构。基本上,我使用以下基本 html 构建原子的 3D 表示:\ 为了
如果我们使用 closable: true 关闭 tabPanel,则默认操作将销毁 tabPanel。因此,由于 tabPanel 被破坏,我们将无法再次显示 tabPanel。但是,我不希望 ta
我正在尝试使用 JavaScript 复制 jQuery 的 after(): var orangeBlock = 'Try out the New Version of CLO' var greyB
我有一个问题。如何多次使用 parentNode 属性? 我知道我可以做出这样的东西: document.getElementById("mytag").parentNode.parentNode.r
我正在尝试为我构建一个类似 jquery 的实用程序库,这正是我主要使用 jQuery 的东西。 我有以下代码: function jLib(selector) { this.elements =
我有一组嵌套的 div: a b c d 我
现在我有这段代码: function delete_box(n) { document.getElementById("box"+n).style.display = "none";
我有一个获取元素的 id 并找出它的 parentNode 的函数,现在我想在那个 中找到所有 id 以相同的 string 开头的元素>父节点. 有什么功能或方法可以找出来吗?我正在尝试这个: va
是否可以链接 parentNode(或类似的)调用? 例如,假设我有这个 html: 现在假设我在“按钮”上有一个事件监听器。现在我想将
考虑这个简单的页面: var upper; var lower; function crop() { //upper = document.getElemen
我有一个项目列表,上面有不同的事件处理程序。 ... Item ... Add to list A Add to list B
如果它有几个没有 id 的子节点,那么将一些内容添加到 ParentNode 的最佳方法是什么。 条件是: I need to add contents inside this
Tôi là một lập trình viên xuất sắc, rất giỏi!