具有追加div的性能点击事件

时间:2013-04-11 21:15:52

标签: javascript jquery performance

我有一个div,我使用jQuery appendhtml追加另一个div。

我搜索了使用jQuery追加元素。

哪个更好?

使用这样的字符串追加:

$('#div_main').append('<div id="div_sub" onclick="func(param);"></div>') 

或:

$('#div_main').append($('<div id="div_sub"></div>').click(function(){ func(param) }))

我试过第一个哪个更快但性能更好?

请注意循环中的append

2 个答案:

答案 0 :(得分:3)

都不是。您不应该为动态添加/删除的元素重新绑定事件。相反,您应该将事件委托给最近的稳定父母:

$('#div_main').on('click', '.sub', function () {
   ...do stuff...
});

$(...).on('click', function () {
    $('#div_main').append('<div class="sub"></div>');
});

答案 1 :(得分:1)

jsperf.com是测试这类事情的好方法。使用DOM明显优于任何一个jQuery代码示例(它们执行大致相同)。看看:http://jsperf.com/clickers

var main = document.getElementById('div_main'),
    clicker = document.createElement('div');

clicker.onclick = function() { func(param) };
main.appendChild(clicker);
相关问题