一页上有很多div

时间:2016-11-14 14:58:47

标签: javascript jquery html

是否有任何方法可以“退出”#34;在屏幕上看不到的元素?
我有一个有很多div的页面,其中一些有附加事件监听器。超过45k div的事件处理程序运行速度非常慢,所以我想也许不必要的元素会有所帮助吗?

仅供参考 - 当元素有display: none时,一切正常。

2 个答案:

答案 0 :(得分:2)

您应该在parent-div上添加一个事件侦听器,而不是添加45k的事件侦听器。

使用jQuery,您可以执行以下操作:

<div id="container">
  <div class="clickable">a</div>
  <div class="clickable">a</div>
  <div class="clickable">a</div>
  <div class="clickable">a</div>
  <div class="clickable">a</div>
  <div class="clickable">a</div>
  <div class="clickable">a</div>
  <div class="clickable">a</div>
</div>

$("#container").on('click', '.clickable', function(e) {
  console.log($(e.target));
})

这应该可以改善您的javascript代码。

如果你仍然需要隐藏不可见的元素,你需要计算他们的位置,这可能会降低你的表现

答案 1 :(得分:0)

当您需要将页面的各个部分彼此分开时(使用“应该使用哪些div”),请使用div。例如,来自内容的页眉/页脚,或博客上的个别帖子。

但是,在语义上你不应该使用它们,而另一个元素是有意义的。虽然这不重复,但我认为此处的信息对您有用。 Too Many DIVS?