是否有任何方法可以“退出”#34;在屏幕上看不到的元素?
我有一个有很多div的页面,其中一些有附加事件监听器。超过45k div的事件处理程序运行速度非常慢,所以我想也许不必要的元素会有所帮助吗?
仅供参考 - 当元素有display: none
时,一切正常。
答案 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?