Javascript jQuery:element.click(func)或element.attr(';onclick';,';func()';)更有效吗?

Javascript jQuery:element.click(func)或element.attr(';onclick';,';func()';)更有效吗?,javascript,onclick,jquery,Javascript,Onclick,Jquery,我通过将元素克隆到列表中来填充列表。然后我更改属性,使每个项目都是唯一的。他们需要在单击时调用函数,所以我想知道使用new_元素是否更有效ornew_element.attr('onlick','func();')onclick有很多限制,包括使DOM变得混乱以及一次只允许一个函数。所以你应该使用点击。有关更多信息,请参阅。onclick有许多限制,包括使DOM变得混乱以及一次只允许一个函数。所以你应该使用点击。有关更多信息,请参阅。既然您使用的是jQuery,那么就这样做吧 new_eleme

我通过将元素克隆到列表中来填充列表。然后我更改属性,使每个项目都是唯一的。他们需要在单击时调用函数,所以我想知道使用
new_元素是否更有效
or
new_element.attr('onlick','func();')

onclick有很多限制,包括使DOM变得混乱以及一次只允许一个函数。所以你应该使用点击。有关更多信息,请参阅。

onclick有许多限制,包括使DOM变得混乱以及一次只允许一个函数。所以你应该使用点击。有关更多信息,请参阅。

既然您使用的是jQuery,那么就这样做吧

new_element.click(function(){
    // your code
});
或者可以像下面这样绑定click事件处理程序

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

既然您使用的是jQuery,那么就这样做吧

new_element.click(function(){
    // your code
});
或者可以像下面这样绑定click事件处理程序

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

两者之间的任何性能差异都很可能可以忽略不计。您应该使用可读性更好的元素,即
元素。单击
。(另外,
onclick
有许多缺点,正如@Matthew Flaschen所提到的。)

两者之间的性能差异很可能可以忽略不计。您应该使用可读性更好的元素,即
元素。单击
。(另外,
onclick
有许多缺点,正如@Matthew Flaschen所提到的。)

直接引用函数比解释字符串更有效

但是,最简单的方法是:

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

链接\u选择器
可能类似于
ul.listClass a.actionClass
。当添加新的列表元素时,不需要执行任何操作。

直接引用函数将比解释字符串更有效

new_element.attr('onclick','func();');
但是,最简单的方法是:

$(links_selector).live('click', func);
链接\u选择器
可能类似于
ul.listClass a.actionClass
。当添加新的列表元素时,不需要执行任何操作

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

  • 低效(不必要地从字符串创建一个新的内联函数,除了调用func之外什么都不做,并且丢失了
    这个
    引用)

  • 把任何复杂的代码放进去都会让人恼火,因为所有的代码都必须是JS字符串转义的

  • IE中断,原因是
    setAttribute
    中存在错误

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

是:

  • 低效(不必要地从字符串创建一个新的内联函数,除了调用func之外什么都不做,并且丢失了
    这个
    引用)

  • 把任何复杂的代码放进去都会让人恼火,因为所有的代码都必须是JS字符串转义的

  • IE中断,原因是
    setAttribute
    中存在错误


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

谢谢,但是该函数已经存在,并且从几个地方调用。匿名函数不适合我。谢谢,但该函数已经存在,并且从几个地方调用。匿名函数不适合我。而且它容易出错(
onclick
),也容易出错(
onclick