我被克隆元素融入它填充列表。 然后我改变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?