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 相关文章推荐
2007/12/23更新创意无限,简单实用(javascript log)
Dec 24 Javascript
基于jquery循环map功能的代码
Feb 26 Javascript
为EasyUI的Tab标签添加右键菜单的方法
Jul 14 Javascript
可以用鼠标拖动的DIV实现思路及代码
Oct 21 Javascript
jQuery操作表格(table)的常用方法、技巧汇总
Apr 12 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
javascript实现很浪漫的气泡冒出特效
Sep 05 Javascript
Angular获取手机验证码实现移动端登录注册功能
May 17 Javascript
详解node-ccap模块生成captcha验证码
Jul 01 Javascript
微信小程序中使用自定义图标(阿里icon)的方法
Aug 20 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
Apr 08 Javascript
JavaScript中isPrototypeOf函数
Nov 07 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
解决中英文字符串长度问题函数
2007/01/16 PHP
关于php unset对json_encode的影响详解
2018/11/14 PHP
js中eval()函数和trim()去掉字符串左右空格应用
2013/02/02 Javascript
JavaScript判断变量是否为数组的方法(Array)
2016/02/24 Javascript
jQuery checkbox选中问题之prop与attr注意点分析
2016/11/15 Javascript
JS基于递归算法实现1,2,3,4,5,6,7,8,9倒序放入数组中的方法
2017/01/03 Javascript
JS奇技之利用scroll来监听resize详解
2017/06/15 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
详解基于vue-cli3快速发布一个fullpage组件
2019/03/08 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
JS精确判断数据类型代码实例
2019/12/18 Javascript
[35:55]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第一场 12.11
2020/12/13 DOTA
python django集成cas验证系统
2014/07/14 Python
Python中实现对Timestamp和Datetime及UTC时间之间的转换
2015/04/08 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
python实现学员管理系统
2019/02/26 Python
Python实现的合并两个有序数组算法示例
2019/03/04 Python
Python matplotlib绘制饼状图功能示例
2019/09/10 Python
python如何快速生成时间戳
2020/07/21 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
详解python对象之间的交互
2020/09/29 Python
德国baby-markt婴儿用品瑞士网站:baby-markt.ch
2017/06/09 全球购物
波比布朗英国官网:Bobbi Brown英国
2017/11/13 全球购物
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
来自Ocado的宠物商店:Fetch
2018/07/10 全球购物
加拿大在线隐形眼镜和眼镜店:VisionPros
2019/10/06 全球购物
请假条范文大全
2014/04/10 职场文书
教师演讲稿大全
2014/05/16 职场文书
禁毒宣传标语
2014/06/19 职场文书
升学宴演讲稿
2014/09/01 职场文书
机关班子查摆问题及整改措施
2014/10/28 职场文书
工作失误检讨书范文
2015/01/26 职场文书
乡镇团代会开幕词
2016/03/04 职场文书
canvas多重阴影发光效果实现
2021/04/20 Javascript
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL
分享一个vue实现的记事本功能案例
2022/04/11 Vue.js