Có một hàm "unbind" toàn cục trong jQuery, sao cho tôi có thể loại bỏ tất cả các sự kiện bị ràng buộc khỏi một không gian tên đã cho? ví dụ:Làm cách nào để bạn hủy liên kết tất cả các sự kiện jQuery khỏi một không gian tên cụ thể?
// assume these are the events bound to different elements
$('#foo').bind('click.myNS', ...);
$('#bar').bind('keyup.myNS', ...);
$('#baz').bind('dblclick.myNS', ...);
// magic occurs here...
$.magicalGlobalUnbindFunction('.myNS');
// ...and afterwards, the three binds from above are gone
Tất cả các ví dụ tôi đã thấy cho unbind yêu cầu một số yếu tố được chọn trước tiên. Tôi đoán rằng về mặt kỹ thuật, bạn có thể làm $('*').unbind('.myNS')
, nhưng điều đó có vẻ như rất không hiệu quả.
Tôi không nghĩ HTML có khoảng cách tên, đó là những gì các sự kiện đang bị ràng buộc để. – jondavidjohn
@jondavidjohn: Đây là dạng không gian tên là một cái gì đó được cung cấp bởi jQuery: http://api.jquery.com/bind/ Nó chỉ là một cách để tổ chức các trình xử lý sự kiện để dễ dàng hủy liên kết chúng mà không ảnh hưởng đến bất kỳ ai khác (chẳng hạn như trong một cắm vào). –
@jondavidjohn: không, nhưng với jquery bạn có thể cho một sự kiện không gian tên riêng của nó. Vì vậy, câu hỏi ở đây là "có cách [jquery] để chọn tất cả các sự kiện ràng buộc của không gian tên x" –