本篇内容介绍了“jQuery中用on绑定事件时需注意哪些问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
永吉网站建设公司创新互联建站,永吉网站设计制作,有大型网站制作公司丰富经验。已为永吉上千家提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的永吉做网站的公司定做!
随着jQuery版本的更新,以前版本的Bind(),live(),delegate()事件可以直接被on代替,本次笔记仅以点击事件为例,主要考察了on事件的用法:
一、用on监听点击事件前添加的DOM,可以正常触发:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #test { height: 100px; font-size: 50px; color: yellow; line-height: 100px; background-color: red; text-align: center; } </style> <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script> <script> $( function(){ var oDiv = $('<div id="test">点我</div>'); $(document.body).append(oDiv); $("#test").on('click', function(){ alert('这是事件前添加的DOM,可以正常触发点击事件'); }); } ); </script> </head> <body> <div id="wrap"></div> </body> </html>
二、用on监听点击事件后添加的DOM,无法正常触发:
<!-- 一、正常的DOM: --> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #test { height: 100px; font-size: 50px; color: yellow; line-height: 100px; background-color: red; text-align: center; } </style> <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script> <script> $( function(){ $("#test").on('click', function(){ alert('这是事件后添加的DOM,无法正常触发点击事件'); }); var oDiv = $('<div id="test">点我</div>'); $(document.body).append(oDiv); } ); </script> </head> <body> <div id="wrap"></div> </body> </html>
三、解决办法:利用事件委托。需要注意的是:委托的对象必须是DOM中已经存在或者事件前动态添加,此时,用on监听后后可以正常触发事件,否则如:步骤四:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #test { height: 100px; font-size: 50px; color: yellow; line-height: 100px; background-color: red; text-align: center; } </style> <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script> <script> $( function(){ var oWrap = $('<div id="wrap"></div>'); $(document.body).append(oWrap); $("#wrap").on('click', $('#test'), function(){ alert('委托对象在事件前添加,可以正常触发点击事件'); }); var oDiv = $('<div id="test">点我</div>'); $("#wrap").append(oDiv); } ); </script> </head> <body> </body> </html>
四、委托对象在事件后添加,无法触发点击事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style type="text/css"> #test { height: 100px; font-size: 50px; color: yellow; line-height: 100px; background-color: red; text-align: center; } </style> <script src="http://lib.sinaapp.com/js/jquery/2.0.2/jquery-2.0.2.min.js"></script> <script> $( function(){ $("#wrap").on('click', $('#test'), function(){ alert('委托对象在事件后添加,无法正常触发点击事件'); }); var oWrap = $('<div id="wrap"></div>'); $(document.body).append(oWrap); var oDiv = $('<div id="test">点我</div>'); $("#wrap").append(oDiv); } ); </script> </head> <body> </body> </html>
五、说明:工作中,on事件比较常用的还是事件绑定和事件委托,至少我碰到的比较多,live事件on用法主要是前面的jQuery对象变成了document,如:$(document).on(),故不另作举例。
“jQuery中用on绑定事件时需注意哪些问题”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!
新闻标题:jQuery中用on绑定事件时需注意哪些问题
标题来源:https://www.cdcxhl.com/article8/jghcip.html
成都网站建设公司_创新互联,为您提供定制开发、静态网站、网站策划、品牌网站制作、企业建站、域名注册
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联