2010-04-29 46 views

回答

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

是:

  • 低效的(不必要創建一個字符串的新的內聯函數,什麼也不做,除了通話FUNC而失去this參考);

  • 加重放置任何複雜的代碼,因爲它都必須是JS字符串轉義;

  • 在IE中損壞,由於setAttribute中的錯誤。

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

+0

而且很容易出現拼寫錯誤('onclikc') – 2012-04-11 08:02:29

3

的onclick有許多限制,包括混亂的DOM,只允許一次一個功能。所以你應該使用點擊。有關更多信息,請參閱Quirks Mode

0

由於您使用jQuery然後使它這樣

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

,或者你可以綁定單擊事件處理程序像

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

謝謝,但功能已經存在,並從幾個地方被稱爲。匿名函數不適合我。 – Jake 2010-04-29 05:01:13

0

在兩者之間的任何性能差異很可能將是微不足道。你應該使用更好的那個,那就是element.click。 (另外,onclick有許多缺點,正如@Matthew Flaschen所說的那樣)。

1

直接引用該函數將比解釋字符串更有效。

這樣做的最低的觸摸方式,然而,就是這樣:

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

links_selector想必會像ul.listClass a.actionClass。當添加新列表元素時,這不需要做任何事情。

相關問題