我通过克隆元素来填充列表。然后我改变了attrs以使每个项目都独一无二。他们需要在点击时调用一个函数,所以我想知道使用new_element.click(func);
或new_element.attr('onlick','func();');
是否更有效
答案 0 :(得分:4)
new_element.attr('onclick','func();');
时:
效率低下(不必要地从字符串创建一个新的内联函数,除了调用func并且丢失this
引用之外什么都不做);
加重了任何复杂的代码,因为它必须被JS字符串转义;
setAttribute
中存在错误,在IE中被破坏。
避免。 click()
/ bind('click')
是有原因的。
答案 1 :(得分:3)
onclick有许多限制,包括混乱DOM并且一次只允许一个函数。所以你应该使用点击。有关详细信息,请参阅Quirks Mode。
答案 2 :(得分:1)
直接引用该函数比解释字符串更有效。
这样做的最低接触方式是这样的:
$(links_selector).live('click', func);
links_selector
可能与ul.listClass a.actionClass
类似。当添加新的列表元素时,这不需要做任何事情。
答案 3 :(得分:0)
因为你正在使用jQuery,所以就这样做
new_element.click(function(){
// your code
});
或者您可以绑定点击事件处理程序,如
new_element.bind("click", function(){
// your code
});
答案 4 :(得分:0)
两者之间的任何性能差异很可能是微不足道的。你应该使用那个读得更好的那个,那就是element.click
。 (另外,onclick
有许多缺点,正如@Matthew Flaschen所提到的那样。)