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 相关文章推荐
Javascript仿PHP $_GET获取URL中的参数
May 12 Javascript
js变量、作用域及内存详解
Sep 23 Javascript
jquery控制页面部分刷新的方法
Jun 24 Javascript
jquery实现表单验证简单实例演示
Nov 23 Javascript
jQuery插件实现表格隔行变色及鼠标滑过高亮显示效果代码
Feb 25 Javascript
AngularJs基本特性解析(一)
Jul 21 Javascript
浅谈angular2的http请求返回结果的subcribe注意事项
Mar 01 Javascript
产制造追溯系统之通过微信小程序实现移动端报表平台
Jun 03 Javascript
layer.prompt输入层的例子
Sep 24 Javascript
Vue extend的基本用法(实例详解)
Dec 09 Javascript
vue vantUI tab切换时 list组件不触发load事件的问题及解决方法
Feb 14 Javascript
JavaScript实现字符串与HTML格式相互转换
Mar 17 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
thinkPHP多语言切换设置方法详解
2016/11/11 PHP
基于Jquery的标签智能验证实现代码
2010/12/27 Javascript
jquery实现滑动图片自己测试的例子
2013/11/05 Javascript
禁止页面刷新让F5快捷键及右键都无效
2014/01/22 Javascript
查找页面中所有类为test的结点的方法
2014/03/28 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
原生javascript实现addClass,removeClass,hasClass函数
2016/02/25 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
基于JS实现发送短信验证码后的倒计时功能(无视页面刷新,页面关闭不进行倒计时功能)
2016/09/02 Javascript
vuejs2.0子组件改变父组件的数据实例
2017/05/10 Javascript
Angularjs 事件指令详细整理
2017/07/27 Javascript
jQuery实现新闻播报滚动及淡入淡出效果示例
2018/03/23 jQuery
详解Vue取消eslint语法限制
2018/08/04 Javascript
优雅的将ElementUI表格变身成树形表格的方法步骤
2019/04/11 Javascript
帮你彻底搞懂JS中的prototype、__proto__与constructor(图解)
2019/08/23 Javascript
微信公众号开发之微信支付代码记录的实现
2019/10/16 Javascript
Vue监听滚动实现锚点定位(双向)示例
2019/11/13 Javascript
微信小程序自定义模态弹窗组件详解
2019/12/24 Javascript
使用IPython来操作Docker容器的入门指引
2015/04/08 Python
Python实现的简单算术游戏实例
2015/05/26 Python
Python语法快速入门指南
2015/10/12 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
安装python时MySQLdb报错的问题描述及解决方法
2018/03/20 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
python 实现在无序数组中找到中位数方法
2020/03/03 Python
django ListView的使用 ListView中获取url中的参数值方式
2020/03/27 Python
一文带你掌握Pyecharts地理数据可视化的方法
2021/02/06 Python
CK美国官网:Calvin Klein
2016/08/26 全球购物
英国最大的滑板品牌选择:Route One
2019/09/22 全球购物
超市业务员岗位职责
2013/12/05 职场文书
2014年师德师风自我剖析材料
2014/09/27 职场文书
员工保密协议书
2014/09/27 职场文书
投标文件签署授权委托书范本
2014/10/12 职场文书
婚育证明样本
2015/06/16 职场文书
田径运动会通讯稿
2015/07/18 职场文书
分享node.js实现简单登录注册的具体代码
2022/04/26 NodeJs