2011-09-21 9 views
1

가능한 중복 : 나는 this question을 읽었습니다하지만 여전히이벤트 리스너

<input type="button" onclick="call_function();" /> 
의 차이 무엇에 불분명

JavaScript Event Listeners vs Event Handlers
element.onload vs element.addEventListener(“load”,callbak,false)

그리고

$(function() { 
    $("#my_button").click(function() { 
     call_function(); 
    }); 
}); 
<input type="button" id="my_button" /> 

첫 번째 이벤트 핸들러와 두 번째는 이벤트 리스너 내가 바로 오전입니다?

다른 방법보다 한 가지 방법이 더 나은 이유는 무엇입니까? 어느 것이 우아한 퇴화 처리에 더 낫습니까?

+0

내 대답은 여기에서 확인하십시오. http://stackoverflow.com/questions/6902033/element-onload-vs-element-addeventlistenerload-callbak-false/6902073#6902073 –

+0

같은 질문 : http : // stackoverflow. com/questions/2215379/javascript-event-listener-vs-event-handlers – adamjmarkham

+0

@adamjmarkham 나는 그 질문을 이미 읽었다는 것을 분명히했다. – Aillyn

답변

3

기능상으로 차이점은 없습니다. 두 경우 모두 주어진 button 요소를 클릭하면 call_function 메서드가 호출됩니다.

큰 차이가 있지만 문체가 있습니다. 후자의 예는 개발자가 완전히 다른 항목

  • HTML 페이지에 HTML 페이지에서의 3 개 부분을 분리 할 수 ​​있기 때문에 많은하여보다 강력한 간주됩니다 페이지
  • CSS 스타일 시트의 데이터를 포함합니다 : 결정합니다 데이터는
  • 자바 스크립트를 표시하는 방법 : 동작

자바 스크립트가 동작 버튼의 정의 독립적 매여 때문에이 두 번째 예를 제공 할 수있다. 이렇게하면 관련된 자바 스크립트와 완전히 독립적으로 HTML을 정의 할 수 있습니다. 별도의 파일로 작성 될 수도 있고 별도의 사람들이 작성할 수도 있고 대부분 독립적으로 변형 될 수도 있습니다. 일부 제한 사항 (예 : id 필드를 변경하지 않는 것)이 있지만 전반적으로 논리적으로 다른 디스플레이 부분간에 큰 자유도를 제공합니다.

+0

다른 어떤 것보다 우려를 나누는 것이 더 중요합니까? 나는 그것이 최종 사용자에게는 차이를 만들지 않을 것이라고 알고 있지만, 프로그래머가 더 쉽게 만들 수 있습니까? – Aillyn

+0

@pessimopoppotamus 차이점의 중요한 부분 인 – JaredPar

+1

클릭 이벤트에서 발생한 함수의 이름을 변경하려면 html 코드로 돌아가서 onclick = ""값을 변경해야합니다. –

1

이벤트 처리기는 특정 이벤트에 대한 응답으로 브라우저에서 호출되는 함수 또는 다른 코드 조각입니다.

이벤트 리스너는 주어진 컨텍스트에서 자바 스크립트 라이브러리 (jquery here)에 의해 소개되는 상위 레벨 추상화이며이 라이브러리가 리스너를 거쳐 호출하도록하는 이벤트 핸들러를 작성하는 이벤트 핸들러를 작성합니다 하나씩. 따라서 jquery는 리스너 함수 목록을 유지 관리하고 호출하는 논리를 숨 깁니다.