jQuery绑定事件on()与弹窗的简要概述


Posted in Javascript onApril 27, 2016

页面上经常会有弹窗,有的弹窗是动态生成的,有的弹窗是在页面底部隐藏的,对于动态生成的弹窗,如果要监听弹窗的事件,可以使用jQuery的事件绑定on()方法实现。

如图,弹窗是js动态生成的,通过点击某个链接弹出,弹窗中的“立即去使用”链接点击后,实现的效果是关闭弹窗,并跳转到锚点。

jQuery绑定事件on()与弹窗的简要概述

这个a标签是:

<astyle="display:" title="立即去使用" target="_blank" gid="167" href="http://act.vip.xunlei.com/vip/2016/51dps/#gamelist" class="co_vip tdu ">立即去使用</a>

我们要监听弹窗里面的click事件,但这个弹窗本身是动态生成的,因此我们要监听body,通过on()事件绑定,当动态生成这个弹窗时,可以监听到click方法:

function jump_to_anchor() {
$("body").on("click", "span[name='msgbox_info'] a, .act-pop-table a", function (e) {
link = $(this).attr('href');
if (link == 'http://act.vip.xunlei.com/vip/2016/51dps/#gamelist') {
e.preventDefault();
msgExit();
window.location.href = link;
}
});
}

这里实际上是绑定了两个a标签的事件绑定,都是当这个链接是某个url,阻止默认行为,并调用关闭弹窗方法,跳转到该链接,也就是锚点。

下面给大家介绍jQuery on()方法绑定动态元素的点击事件

之前就一直受这个问题的困扰,在jQuery1.7版本之后添加了on方法,之前就了解过,其优越性高于live(),bind(),delegate()等方法,在此之前项目中想用这个来测试结果发现,居然动态生成的标签点击了没反应,而live方法却能够支持,于是乎到处查资料,问网友,结果找了好久在一篇文章中终于找到了答案。。。

jQuery 使用on绑定动态生成的元素时,不能直接用该对象操作,而是选择其非动态生成的父节点然后再找到本身才能达到效果。大家看看源码就知道了。生成的按钮基数项on方法点击无效live方法有效。

比如页面上有下边两个元素:

<input type="button" name="addbtn" value="按钮添加" />
<div id="test"></div>

使用下边的jQuery代码大家可以对比看看区别:

$(function () {
var a = 1,
$_div = $('#test');
$('input[name=addbtn]').on('click', function () {
$_div.append('<input type="button" name="test' + a + '" value="按钮' + a + '"/>');
a++;
});
//偶数项点击事件
$_div.on('click', 'input[name^=test]:even', function () { 
alert('我是有效的on方法,你能看见我吗:' + this.value);
});
//奇数项绑定的点击事件 发现点击无效,而是用live方法却能够支持
$('input[name^=test]:odd').on('click', function () { 
alert('我是无效的on方法,你不能看见我');
});
//奇数项绑定的点击事件 发现点击无效,而是用live方法却能够支持
$('input[name^=test]:odd').live('click', function () {
alert('我是live方法,你能看见我吗:' + this.value);
});
});

代码简单,就不放演示页了,如果有什么不明白的,欢迎给我留言,小编会及时回复大家的!

Javascript 相关文章推荐
DOM2非标准但却支持很好的几个属性小结
Jan 21 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
Jan 08 Javascript
JavaScript中对象介绍
Dec 31 Javascript
JavaScript修改浏览器tab标题小技巧
Jan 06 Javascript
jquery移动点击的项目到列表最顶端的方法
Jun 24 Javascript
JavaScript设计模式经典之命令模式
Feb 24 Javascript
js数组常用操作方法小结(增加,删除,合并,分割等)
Aug 02 Javascript
将JSON字符串转换成Map对象的方法
Nov 30 Javascript
WebView启动支付宝客户端支付失败的问题小结
Jan 11 Javascript
JS简单实现点击按钮或文字显示遮罩层的方法
Apr 27 Javascript
JS加密插件CryptoJS实现的DES加密示例
Aug 16 Javascript
vue axios数据请求get、post方法及实例详解
Sep 11 Javascript
jQuery.form插件的使用及跨域异步上传文件
Apr 27 #Javascript
js实现纯前端的图片预览
Apr 27 #Javascript
简介BootStrap model弹出框的使用
Apr 27 #Javascript
js调用webservice构造SOAP进行身份验证
Apr 27 #Javascript
javascript实现延时显示提示框特效代码
Apr 27 #Javascript
JS延时器提示框的应用实例代码解析
Apr 27 #Javascript
基于JS实现Android,iOS一个手势动画效果
Apr 27 #Javascript
You might like
PHP FTP操作类代码( 上传、拷贝、移动、删除文件/创建目录)
2014/05/10 PHP
php自定义错误处理用法实例
2015/03/20 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
使用TextRange获取输入框中光标的位置的代码
2007/03/08 Javascript
JavaScript动态调整TextArea高度的代码
2010/12/28 Javascript
精通Javascript系列之Javascript基础篇
2011/06/07 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
控制input输入框中提示信息的显示和隐藏的方法
2014/02/12 Javascript
node.js中的fs.appendFile方法使用说明
2014/12/17 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
javascript中this指向详解
2016/04/23 Javascript
微信小程序 特效菜单抽屉效果实例代码
2017/01/11 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
详解vue-cli官方脚手架配置
2018/07/20 Javascript
js使用ajax传值给后台,后台返回字符串处理方法
2018/08/08 Javascript
新手快速入门微信小程序组件库 iView Weapp
2019/06/24 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
Python正则获取、过滤或者替换HTML标签的方法
2016/01/28 Python
Python实现一个简单的验证码程序
2017/11/03 Python
thinkphp5 路由分发原理
2021/03/18 PHP
结合CSS3的新特性来总结垂直居中的实现方法
2016/05/30 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
Pretty Little Thing爱尔兰:时尚女性服饰
2017/03/27 全球购物
京东港澳售:京东直邮港澳台
2018/01/31 全球购物
金额转换,阿拉伯数字的金额转换成中国传统的形式如:(¥1011)-> (一千零一拾一元整)输出
2015/05/29 面试题
年级组长自我鉴定
2014/02/22 职场文书
气象学专业个人求职信
2014/04/22 职场文书
国庆宣传标语
2014/06/30 职场文书
党员目标管理责任书
2014/07/25 职场文书
2014年移动公司工作总结
2014/12/08 职场文书
2019年浪漫婚礼证婚词
2019/06/27 职场文书
Html分层的box-shadow效果的示例代码
2021/03/30 HTML / CSS
如何用JavaScipt测网速
2021/05/09 Javascript
JS如何使用剪贴板操作Clipboard API
2021/05/17 Javascript
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python