2013-07-11 56 views
2

我想知道兩者相同時idfunction的效果。例如:如果id和函數名稱相同,則不調用Javascript函數

<tr> <td><img id='deleteAuthor' onclick='javascript: deleteAuthor(this)' src='images/close.png' /></td></tr>"; 
     function deleteAuthor(element){ 
      alert(element); 
     } 
    output:TypeError: deleteAuthor is not a function 
    [Break On This Error] 


    <tr> <td><img id='deleteAuthorbt' onclick='javascript: deleteAuthor(this)' src='images/close.png' /></td></tr>"; 
     function deleteAuthor(element){ 
     alert(element); 
     } 
    output:Object HTMLImageElement 

請爲什麼表現得如此?

+0

這是因爲元素ID和函數在全局範圍內碰撞導致元素覆蓋函數引用 –

+0

更多閱讀http://stackoverflow.com/questions/3434278/ie -chrome-are-dom-tree-elements-global-variables- –

+0

[TypeError:prc.cng()不是Firefox中的函數,Uncaught TypeError:Object#中沒有方法'cng' Chrome](http://stackoverflow.com/questions/16581252/typeerror-prc-cng-is-not-a-function-in-firefox-uncaught-typeerror-object) – Quentin

回答

2

你必須爲id和函數使用不同的名字。這兩個名稱相同會​​導致模糊

+0

它並不含糊,範圍和覆蓋規則是一致的。更好的解決方案是避免在全球範圍內做所有事情。 – Quentin

相關問題