【发布时间】:2017-01-06 10:19:40
【问题描述】:
目前我有 350+ 个活动,例如
$(document).on('click','.removable-init',function(){});
我看到一个性能问题,一些点击事件延迟了几分之一秒。 但是我的整个网站都是用 ajax 动态生成的。
我想知道如何处理这些问题。
以下是我网站的流程示例。
加载
<html>
<head></head>
<body>
<div id="main">
<button id="clickme"></button>
<button id="clickme2"></button>
</div>
</body>
</html>
点击: #clickme
$('#main').append('<div id="anothermain"><button id="anotherclick"></button></div>');
点击: #clickme2
$('#main').append('<div id="anothermain4"><button id="anotherclick4"></button></div>');
点击: #anotherclick
$('#anothermain').append('<div id="anothermain2"><button id="anotherclick2"></button></div>');
点击: #anotherclick2
$('#main').append('<div id="mainsibling"><button id="clicksibling"></button></div>');
点击: #anotherclick4
$('#main').append('<div id="anothermain5"><button id="anotherclick2"></button></div>');
以上只是一个示例,表明点击事件是巨大的(350+)并且是在网站的不同部分动态创建的。
所以我想知道如何在不使用委托记录的情况下处理这些问题。 ?
当屏幕上有很多元素时,有时专注于文本框、下拉点击等反应很慢
【问题讨论】:
-
一种方法是尽可能靠近对象:
$("#main").on('click','button',function(){}); -
唯一可以包含所有元素的最接近的东西是
#main,它是文档/正文的孩子,所以我认为它不会有太大影响
标签: javascript jquery html performance events