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 相关文章推荐
jQuery层次选择器选择元素使用介绍
Apr 18 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
Jun 04 Javascript
JQuery动态添加和删除表格行的方法
Mar 09 Javascript
JavaScript测试工具之Karma-Jasmine的安装和使用详解
Dec 03 Javascript
深入学习JavaScript的AngularJS框架中指令的使用方法
Mar 05 Javascript
AngularJS基础 ng-keyup 指令简单示例
Aug 02 Javascript
完美解决linux下node.js全局模块找不到的情况
May 16 Javascript
浅谈vue父子组件怎么传值
Jul 21 Javascript
vue实现弹框遮罩点击其他区域弹框关闭及v-if与v-show的区别介绍
Sep 29 Javascript
vue动态绑定class的几种常用方式小结
May 21 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 Javascript
js实现计时器秒表功能
Dec 16 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使用PDO获取结果集的方法
2017/02/16 PHP
Display SQL Server Login Mode
2007/06/21 Javascript
js实现改进的仿蓝色论坛导航菜单效果代码
2015/09/06 Javascript
JS实现漂亮的窗口拖拽效果(可改变大小、最大化、最小化、关闭)
2015/10/10 Javascript
学做Bootstrap的第一个页面
2016/05/15 HTML / CSS
需灵活掌握的Bootstrap预定义排版类 你精通吗?
2016/06/20 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
JS中如何实现复选框全选功能
2016/12/19 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
JS中Array数组学习总结
2017/01/18 Javascript
浅谈jQuery中的$.extend方法来扩展JSON对象
2017/02/12 Javascript
详解Vuejs2.0之异步跨域请求
2017/04/20 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
使用wxapp-img-loader自定义组件实现微信小程序图片预加载功能
2018/10/18 Javascript
微信小程序实现bindtap等事件传参
2019/04/08 Javascript
JS数组splice操作实例分析
2019/10/12 Javascript
js布局实现单选按钮控件
2020/01/17 Javascript
使用wxpython实现的一个简单图片浏览器实例
2014/07/10 Python
Python with用法实例
2015/04/14 Python
Python基于回溯法子集树模板解决数字组合问题实例
2017/09/02 Python
你眼中的Python大牛 应该都有这份书单
2017/10/31 Python
python使用xslt提取网页数据的方法
2018/02/23 Python
Python操作配置文件ini的三种方法讲解
2019/02/22 Python
Python Request类源码实现方法及原理解析
2020/08/17 Python
基于Html5实现的react拖拽排序组件示例
2018/08/13 HTML / CSS
大学三年的自我评价
2013/12/25 职场文书
酒店采购员岗位职责
2014/03/14 职场文书
个人考核材料
2014/05/15 职场文书
商务日语专业的自荐信
2014/05/23 职场文书
大雁塔导游词
2015/02/04 职场文书
荆州古城导游词
2015/02/06 职场文书
2015年学校财务工作总结
2015/05/19 职场文书
办公室年度工作总结2015
2015/05/21 职场文书
科技馆观后感
2015/06/08 职场文书
初中生物教学随笔
2015/08/15 职场文书
优秀范文:《但愿人长久》教学反思3篇
2019/10/24 职场文书