事件命名空间
(一)使用命名空间对时间进行管理,代码如下:
<!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!')触发不了事件,已进行测试。
相关推荐
lzzyok 2020-10-10
无情的你无情的雨 2020-06-16
chunianyo 2020-06-04
grantlee 2020-05-28
xjp 2020-05-26
Roka 2020-05-25
天空一样的蔚蓝 2020-05-02
nangongyanya 2020-04-19
shufen0 2020-04-14
humanbeng 2020-03-05
Alanxz 2020-03-04
liwf 2020-02-17
歆萌 2020-02-10
tianchaoshangguo 2020-01-04
julien 2020-01-02
齐天大圣数据候 2019-12-28
杨友山 2019-12-25
GavinZhera 2019-12-19
oLeiShen 2019-12-15