删除DOM元素后,我应该调用jQuery.off吗?

路易斯·克雷斯波

我正在通过来注册DOM元素上的点击侦听器jQuery.on()如果稍后将该元素从DOM中删除-也许是间接地(例如,通过替换某些父对象的内容)$(parent).html(...),我是否还要麻烦通过删除处理程序jQuery.off()

即使该元素不再触发任何事件,我也担心潜在的内存泄漏。一旦从DOM中删除了一个元素,jQuery或浏览器是否会处理并丢弃所有已注册的处理程序?

dfsq

即使该元素不再触发任何事件,我也担心潜在的内存泄漏。

这是一个很好的关注。要回答您的问题,请看一下$.fn.html 实现从那里您将学到html尝试清除存储的事件数据的方法:

// Remove element nodes and prevent memory leaks
if (elem.nodeType === 1) {
    jQuery.cleanData(getAll(elem, false));
    elem.innerHTML = value;
}

因此,在这种情况下,.off()不需要手动调用然而..

您需要记住,永远不要尝试使用本机方法(例如removeChildset)来删除元素innerHTML,因为在这种情况下,肯定会发生内存泄漏(如果存储了某些数据,则jQuery将注册事件等)。在这种情况下,用.offmethod实际注销事件处理程序会更可靠或更好地使用事件传播,而不是或html('')使用$.fn.remove

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

删除DOM元素后,我应该调用jQuery.off吗?

来自分类Dev

NSURLConnection之前应该调用connectionDidFinishLoading吗?

来自分类Dev

NSURLConnection之前应该调用connectionDidFinishLoading吗?

来自分类Dev

执行原始SQL后,应该调用PG :: Result#clear吗?

来自分类Dev

每次重新启动应用程序时,我都应该调用setMinimumBackgroundFetchInterval吗?

来自分类Dev

显示从数据库中获取的数据时,我应该调用escape_javascript吗

来自分类Dev

使用Rails发送邮件时,我应该调用传递方法吗?

来自分类Dev

我应该调整图像大小以在 UITableView 中显示吗?

来自分类Dev

从C ++调用Java方法时,应该调用PushLocalFrame和PopLocalFrame吗?

来自分类Dev

我们可以从DOM中删除元素吗?

来自分类Dev

即使只有一个块,也应该调用chunking.success.endpoint吗?

来自分类Dev

在Libgdx中创建另一个纹理时应该调用dispose()纹理吗?

来自分类Dev

每次访问 Weakref 对象时都应该调用它吗?

来自分类Dev

我可以将lua_tointeger()用于off_t吗?

来自分类Dev

我可以将lua_tointeger()用于off_t吗?

来自分类Dev

我可以将MaterialSwitch更改为true / false而不是on / off吗?

来自分类Dev

我应该手动将自定义基因剔除元素注册到DOM吗?

来自分类Dev

我的函数应该调用什么?

来自分类Dev

从清单中删除后,我应该将对象更改为Null吗?

来自分类Dev

完整的CSS下载完成后,我应该删除内联CSS吗?

来自分类Dev

完整的CSS下载完成后,我应该删除内联CSS吗?

来自分类Dev

我应该在关闭拉取请求后删除分支吗?

来自分类Dev

等待后我应该退还诺言吗?

来自分类Dev

我应该使用 <main> 元素吗?

来自分类Dev

我应该始终删除EventListener吗?

来自分类Dev

我应该删除假设索引吗?

来自分类Dev

我应该删除假设索引吗?

来自分类Dev

调用$ el.remove()也会删除嵌套dom元素上的事件处理程序吗?

来自分类Dev

删除删除的元素超出我的要求吗?

Related 相关文章

  1. 1

    删除DOM元素后,我应该调用jQuery.off吗?

  2. 2

    NSURLConnection之前应该调用connectionDidFinishLoading吗?

  3. 3

    NSURLConnection之前应该调用connectionDidFinishLoading吗?

  4. 4

    执行原始SQL后,应该调用PG :: Result#clear吗?

  5. 5

    每次重新启动应用程序时,我都应该调用setMinimumBackgroundFetchInterval吗?

  6. 6

    显示从数据库中获取的数据时,我应该调用escape_javascript吗

  7. 7

    使用Rails发送邮件时,我应该调用传递方法吗?

  8. 8

    我应该调整图像大小以在 UITableView 中显示吗?

  9. 9

    从C ++调用Java方法时,应该调用PushLocalFrame和PopLocalFrame吗?

  10. 10

    我们可以从DOM中删除元素吗?

  11. 11

    即使只有一个块,也应该调用chunking.success.endpoint吗?

  12. 12

    在Libgdx中创建另一个纹理时应该调用dispose()纹理吗?

  13. 13

    每次访问 Weakref 对象时都应该调用它吗?

  14. 14

    我可以将lua_tointeger()用于off_t吗?

  15. 15

    我可以将lua_tointeger()用于off_t吗?

  16. 16

    我可以将MaterialSwitch更改为true / false而不是on / off吗?

  17. 17

    我应该手动将自定义基因剔除元素注册到DOM吗?

  18. 18

    我的函数应该调用什么?

  19. 19

    从清单中删除后,我应该将对象更改为Null吗?

  20. 20

    完整的CSS下载完成后,我应该删除内联CSS吗?

  21. 21

    完整的CSS下载完成后,我应该删除内联CSS吗?

  22. 22

    我应该在关闭拉取请求后删除分支吗?

  23. 23

    等待后我应该退还诺言吗?

  24. 24

    我应该使用 <main> 元素吗?

  25. 25

    我应该始终删除EventListener吗?

  26. 26

    我应该删除假设索引吗?

  27. 27

    我应该删除假设索引吗?

  28. 28

    调用$ el.remove()也会删除嵌套dom元素上的事件处理程序吗?

  29. 29

    删除删除的元素超出我的要求吗?

热门标签

归档