Tôi không biết một và tìm kiếm trên Google không mang lại bất kỳ kết quả rõ ràng nào. Một giải pháp kludgy dễ dàng là để tạo ra một chức năng mà chu kỳ thông qua tất cả các sự kiện và đặt nó vào null
, chẳng hạn như
function removeEvents(obj)
{
obj.onblur = null;
obj.onchange = null;
obj.onclick = null;
// ...
}
Gọi chức năng này như sau: removeEvents(myElem)
. Một danh sách đầy đủ các trình xử lý sự kiện JavaScript có thể được tìm thấy tại http://www.elated.com/articles/events-and-event-handlers/.
Chắc chắn có một cách thanh lịch hơn để viết chức năng này, nhưng tôi không biết liệu có cách nào thanh lịch hơn để giải quyết vấn đề này không. Nó sẽ là đáng yêu nếu ai đó biết về một. Nếu bạn đang ràng buộc các sự kiện thông qua một thư viện JavaScript, chẳng hạn như jQuery, có thể có các tùy chọn khác tốt hơn.
Các sự kiện bị ràng buộc như thế nào ở vị trí đầu tiên (ví dụ: 'onclick = ...', 'addEventListener', thư viện, v.v ...)? –
addEventListener() được sử dụng. Nó được sử dụng cho myElem và cho một số trẻ em tùy ý tùy thuộc vào logic điều kiện được kích hoạt bởi người dùng. – Tower
Tôi lấy nó bạn không quan tâm đến IE sau đó (trong đó sử dụng 'attachEvent')? Nếu đó là trường hợp, "sao chép" phần tử của bạn với 'cloneNode (true)', và magic-boom-presto, các sự kiện addEventListener sẽ không được sao chép. Trong thông số: http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-EventListener –