使用命名空間對時間進行管理,代碼如下: 優勢: 刪除事件時只需要指定命名空間即可,刪除plugin空間的事件只需要一行代碼即可,由於click事件不在plugin的空間內,所以click事件仍然有效。 ...
(一)使用命名空間對時間進行管理,代碼如下:
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <title>事件命名空間</title> </head> <body> <div id="eve"> 綁定事件功能變數名稱空間 </div> <button type="button" id="cancel">取消綁定的所有事件</button> <script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script> <script type="text/javascript"> $(function() { $('#eve').bind('mouseout.plugin', function() { alert('mouseout事件'); }); $('#eve').bind('mousemove.plugin', function() { alert('mousemove事件'); }); $('#cancel').bind('click', function() { $('#eve').unbind('.plugin'); }); }); </script> </body> </html>
優勢:
刪除事件時只需要指定命名空間即可,刪除plugin空間的事件只需要一行代碼即可,由於click事件不在plugin的空間內,所以click事件仍然有效。
(二)觸發事件
<!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8" /> <title>事件命名空間</title> </head> <body> <div id="eve"> 綁定事件功能變數名稱空間 </div> <button type="button" id="cancel">取消綁定的所有事件</button> <script src="https://cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script> <script type="text/javascript"> $(function() { $('#eve').bind('click', function() { alert('click事件'); }); $('#eve').bind('click.plugin', function() { alert('click在plugin空間下的事件'); }); $('#cancel').click(function() { //觸發click事件 而不是click在plugin空間下的事件 $('#eve').trigger('click!'); //觸發click在plugin空間下的事件 //$('#eve').trigger('click.plugin'); //觸發所有的click事件 $('#eve').trigger('click'); }); }); </script> </body> </html>
關鍵代碼:
//觸發click事件 而不是click在plugin空間下的事件 $('#eve').trigger('click!'); //觸發click在plugin空間下的事件 //$('#eve').trigger('click.plugin'); //觸發所有的click事件 $('#eve').trigger('click');
說明:此jquery版本最最高為1.8.3,再高的版本對$('#eve').trigger('click!')觸發不了事件,已進行測試。