2013-02-14 38 views
5

Tôi hoàn toàn mới với Javascript. Nhưng tôi đã học được một chút về Activescript trước đây. Tôi được dạy sử dụng addEventListener để xử lý các sự kiện.Javascript: onchange hoặc addEventListener?

Nhưng khi tôi đến JavaScript, mặc dù addEventListener là một tùy chọn, có vẻ như một cách nhỏ để sử dụng addEventListener. Thay vào đó, mọi người sử dụng onChange().

Ngoại trừ cú pháp, có sự khác biệt hành vi nào không?

Tôi cũng được dạy luôn sử dụng removeEventListener. Có vẻ như không cần thiết lắm. Nếu tôi sử dụng onChange, không cần phải mã removeEventListener?

Cảm ơn bạn

+3

Để tìm hiểu về sự khác biệt và nhiều hơn nữa, có một cái nhìn tại http://www.quirksmode.org/js/introevents.html. –

Trả lời

2

Với addEventListener bạn có thể đính kèm nhiều người nghe sự kiện. Điều này không đúng với thuộc tính onchange.

3

Hai khác biệt chính:

  • addEventListener không tương thích với các trình duyệt IE cũ
  • onchange không nghe thêm một sự kiện: nó thay thế hiện có
1

Cá nhân tôi nghĩ addEventListener là tốt hơn rất nhiều. Một ví dụ bạn có thể làm với điều này trong HTML5

document.addEventListener("input", function(){ 
 
    target = window.event.target.value; 
 
    window.event.target.nextSibling.nextSibling.value = target*2; 
 
});
<input name="1" value="25"> 
 
<input name="2" value="50" readonly> 
 
<p>Hello World</p>