使用jQuery UI创建一个替代选择,显示为具有三千多个元素的层次结构。
基本上,使用jQuery 1.6.1,jQuery UI中的CSS除了
<style type="text/css">
.selectable,
.selectable li
{
moz-user-select: none;
-khtml-user-select: none;
-webkit-user-select: none;
user-select: none;
}
</style>
<script type="text/javascript">
$(function () {
$('.seletable li').click(function () { alert('hullo') });
});
</script>
身体
<ol class="seletable">
<li style="margin-left: {calculated according to the current level in hierarchy}">...</li>
...
</ol>
有序列表当然会有3k +列表元素。
当加载页面并点击和元素时,警告框似乎在Google Chrome和其他WebKit浏览器(如Safari)中显着延迟一两秒钟,但在其他浏览器(如IE,Firefox和Opera)中的功能与预期相同。
答案 0 :(得分:1)
您是否将.click()
事件发送给同一<ol>
个超过3000个元素?
我希望情况并非如此,因为您只需向<ol>
发出一次点击事件并停止,每次都会查找是谁生成了该事件。如果你这样做,那可能也是导致经济放缓的原因。特别是在IE中,许多事件监听器都被杀死了。
像
这样的东西$( '<ol>' ).click( function(e) {
// Here, e.target gives you the real element who was clicked
});