2013-07-11 2 views
2

idfunction의 효과는 무엇인지 알고 싶습니다. 예 :id와 함수 이름이 같은 경우 자바 스크립트 함수가 호출되지 않음

<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-here 여기 –

+0

[TypeError : prc.cng()의 중복 가능한 내용이 Firefox에서 발견되지 않음 TypeError : Object # 에 'cng'메서드가 없습니다. 크롬] (http://stackoverflow.com/questions/16581252/typeerror-prc-cng-is-not-a-function-in-firefox-uncaught-typeerror-object) – Quentin

답변

2

U는 ID와 기능에 대해 다른 이름을 사용해야합니다. 두 가지 모두 동일한 이름을 사용하면 모호성이 발생할 수 있습니다.

+0

모호하지는 않지만 범위 지정 및 재정의 규칙은 일관성이 있습니다. 더 나은 해결책은 글로벌 범위의 모든 일을 피하는 것입니다. – Quentin

관련 문제