Định nghĩa và sử dụng
- .undelegate(): Loại bỏ xử lý của một sự kiện cho tất cả thành phần phù hợp dựa trên một tập hợp cụ thể các thành phần gốc.
Cấu trúc
- Đã được thêm vào từ phiên bản 1.4.2
Loại bỏ xử lý của tất cả các sự kiện cho tất cả thành phần phù hợp.
$('p').undelegate();
.undelegate('Bộ chọn', 'Sự kiện')
$('p').undelegate('.test', 'click');
.undelegate('Bộ chọn', 'Sự kiện', function(){})
$('p').undelegate('.test', 'click', function(){...});
.undelegate(), .undelegate('Bộ chọn', 'Sự kiện')
Html viết:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Tiêu đề</title> <script src="https://code.jquery.com/jquery-latest.js"></script> <script> $(function(){ $('body').delegate('p','click',function(){ alert("Sự kiện click được gọi"); }); $('.undelegate').click(function(){ $('body').undelegate('click'); //$('body').undelegate(); }); }); </script> </head> <body> <p>Click xuất hiện alert!</p> <button class="undelegate">.undelegate()</button> </body> </html>
Hiển thị trình duyệt:
Ban đầu khi click vào thành phần p ta thấy xuất hiện popup, nhưng khi ta click vào button ".undelegate()", ta đã loại bỏ sự kiện click cho thành phần p, khi này có click vào p thì sẽ không còn thấy xuất hiện popup nữa.
.undelegate('Bộ chọn', 'Sự kiện', function(){})
Html viết:
<!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>Tiêu đề</title> <script src="https://code.jquery.com/jquery-latest.js"></script> <script> $(function(){ function eClick() { $('span').show().fadeOut('slow'); } $('.delegate').click(function(){ $('body').delegate('.clickEvent', 'click', eClick) .find('.clickEvent').text('Click xem kết quả.'); }); $('.undelegate').click(function(){ $('body').undelegate('.clickEvent', 'click', eClick) .find('.clickEvent').text('Sự kiện click đã loại bỏ!'); }); }); </script> </head> <body> <button class="clickEvent">None</button> <button class="delegate">.delegate()</button> <button class="undelegate">.undelegate()</button> <span style="display: none;">Sự kiện Click vừa được tạo!</span> </body> </html>
Hiển thị trình duyệt:
Khi click vào button ".delegate()" khi đó ta đã kích hoạt sự kiện click cho button có class "clickEvent", khi này ta có thể click để xem sự kiện, nhưng khi ta click vào button ".undelegate()", ta đã loại bỏ sự kiện click cho button có class "clickEvent", khi này có click vào button này thì sẽ không còn thấy sự kiện click nữa.