Giả sử tôi đã đính kèm nhiều trình xử lý sự kiện khác nhau vào các phần tử biểu mẫu khác nhau. Sau đó, tôi muốn xóa toàn bộ biểu mẫu.Trình xử lý sự kiện javascript có cần phải được xóa trước khi xóa phần tử mà chúng được đính kèm không?
Có cần thiết (hoặc đề xuất) hủy đăng ký mọi trình xử lý sự kiện tồn tại trên biểu mẫu và các thành phần của nó không? Nếu vậy, cách dễ nhất để loại bỏ tất cả người nghe trên một tập hợp các phần tử là gì? Hậu quả của việc không làm như vậy là gì? Tôi đang sử dụng Prototype, nếu nó quan trọng.
Đây là những gì tôi thực sự đang làm. Tôi có một hình thức đơn giản, như thế này:
<form id="form">
<input type="text" id="foo"/>
<input type="text" id="bar"/>
</form>
tôi quan sát các sự kiện khác nhau trên đầu vào, ví dụ:
$('foo').observe('keypress', onFooKeypress);
$('bar').observe('keypress', onBarKeypress);
, vv
Các mẫu được gửi qua AJAX và phản ứng là bản sao mới của biểu mẫu. Tôi thay thế các hình thức cũ với một bản sao của cái mới làm một cái gì đó như $('form').replace(newForm)
. Tôi đang tích lũy một loạt các sự kiện cruft?