我有一个这样的项目的视觉列表:
http://jsfiddle.net/viatropos/XCe3T/1/
在真正的应用程序中,我只加载了 200 个项目。但问题是click
事件需要将近一秒钟来调用处理程序,即使只有 200 个项目。mouseover
无论列表中有多少项目,事件回调都会立即执行。
我的问题是,无论页面上有多少元素,委托方法不应该一样快吗?我正在做的就是:
$("body").delegate("a", "click", function(event) { console.log($(event.target).get(0)); return false; }
如果您转到上面的 jsfiddle 示例和 Web 检查器,然后单击呈现结果中的链接,它将添加 200 个以上的元素。注意你添加的元素越多,它变得越慢。奇怪的是,如果您从 6000 个项目开始,委托/单击的执行速度比从 2000 个开始并一次添加 200 个直到达到 6000 的情况要快得多。
你有什么想法,我如何提高 jQuery事件delegate
方法的性能click
?css 是否会导致速度变慢(可能样式太多或布局未优化)?