【发布时间】:2013-12-20 01:48:50
【问题描述】:
我使用了很多包含 100 个子元素的父 div 容器,有些甚至有 500 个子元素。
<div id="px">
<div> icon1 </div>
<div> icon2 </div>
... +98
</div>
<div id="content">
<div> images, text.. etc </div>
<div> images, text.. etc </div>
... +98
</div>
我这样做的原因是我可以使用 1 个单独的 jquery 代码为每个子元素指定一个 mouseenter 事件,然后根据该子选择显示一些内容:
$("#px >").mouseenter(function() {
index = (this).index();
$("#content :eq("+index+")").css("display","block"); });
有没有更好的方法来做到这一点或减少所需的标记/css?因为我的 html 和 css 会长得离谱,而且可能表现得很糟糕。
【问题讨论】:
-
真的有性能问题吗?如果您需要可见的不同元素,那么您需要可见的不同元素。虽然这里可能会使用 Canvas 甚至 SVG,但这最终会改变整个显示和交互。或者,也许任何时候都应该显示(即甚至创建)数据的一个子集..
-
如果存在不可接受的性能问题,这只是“太大” - 我希望现代桌面浏览器能够处理数千个节点;仅在这个简单的页面上就有超过 1k+。无论如何,数据必须在某个地方。从 JavaScript 对象或 XHR 请求(实际上只是“分页”的一种形式)动态创建(显示的)DOM 是一种方法..
标签: jquery html nested children