jQuery的:是element.click(FUNC)或element.attr(的 'o

2019-10-21 09:52发布

我被克隆元素融入它填充列表。 然后我改变ATTRS,使每一个项目独特的。 他们需要调用点击一个功能,所以我不知道,如果是更有效地使用new_element.click(func);new_element.attr('onlick','func();');

Answer 1:

new_element.attr('onclick','func();');

方法是:

  • 低效的(不必要创建一个字符串的新的内联函数,什么也不做,除了通话FUNC而失去this参考);

  • 加重在把任何复杂的代码,因为这一切必须是JS的字符串转义;

  • 碎在IE中,由于在错误setAttribute

避免。 click() / bind('click')是有原因的。



Answer 2:

的onclick有许多限制,包括弄乱DOM和只允许一次一个功能。 所以,你应该使用点击。 见Quirks模式以获取更多信息。



Answer 3:

直接引用函数将不必解释字符串更高效。

这样做的最低的触摸方式,然而,就是这个样子:

$(links_selector).live('click', func);

links_selector想必会像ul.listClass a.actionClass 。 这不需要什么时候会添加新的列表元素来完成。



Answer 4:

由于您使用jQuery然后让它这样

new_element.click(function(){
    // your code
});

或者你可以绑定单击事件处理程序像

new_element.bind("click", function(){
    // your code
});


Answer 5:

在两者之间的任何性能差异很可能将是微不足道的。 您应该使用一个,上面写着更好,这就是element.click 。 (另外, onclick有很多缺点,如@Matthew富兰琛提到。)



文章来源: jQuery: is element.click(func) or element.attr('onclick','func()') more efficient?