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 应用代码 方便的排序功能
Feb 06 Javascript
jquery图片放大功能简单实现
Aug 01 Javascript
ExtJS中设置下拉列表框不可编辑的方法
May 07 Javascript
15个jquery常用方法、小技巧分享
Jan 13 Javascript
jQuery焦点控制图层展示延迟隐藏的方法
Mar 09 Javascript
javascript DIV实现跟随鼠标移动
Mar 19 Javascript
JS中sort函数排序用法实例分析
Jun 16 Javascript
Bootstrap编写一个兼容主流浏览器的受众巨幕式风格页面
Jul 01 Javascript
connection reset by peer问题总结及解决方案
Oct 21 Javascript
react-native 圆弧拖动进度条实现的示例代码
Apr 12 Javascript
vue-cli3.0 脚手架搭建项目的过程详解
Oct 19 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 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 或网站服务器日志,并正确配置 PHP 安装最快的解决办法
2010/08/01 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
php Hex RGB颜色值互换的使用
2013/05/10 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
PHP实现数组根据某个字段进行水平合并,横向合并案例分析
2019/10/08 PHP
JavaScript 的方法重载效果
2009/08/07 Javascript
复制小说文本时出现的随机乱码的去除方法
2010/09/07 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
深入理解JavaScript中的浮点数
2016/05/18 Javascript
jQuery实现分页功能(含ajax请求、后台数据、附完整demo)
2017/04/03 jQuery
详解开源的JavaScript插件化框架MinimaJS
2017/10/26 Javascript
webpack的pitching loader详解
2019/09/23 Javascript
js实现文字头像的生成代码
2020/03/07 Javascript
Python中类的继承代码实例
2014/10/28 Python
Python文件夹与文件的相关操作(推荐)
2016/07/25 Python
python实现按长宽比缩放图片
2018/06/07 Python
用Python实现读写锁的示例代码
2018/11/05 Python
python多线程与多进程及其区别详解
2019/08/08 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
如何利用pycharm进行代码更新比较
2020/11/04 Python
python Autopep8实现按PEP8风格自动排版Python代码
2021/03/02 Python
将SVG图引入到HTML页面的实现
2019/09/20 HTML / CSS
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
2014年开学第一课活动方案
2014/03/06 职场文书
会计工作决心书
2014/03/11 职场文书
关于学习的演讲稿
2014/05/10 职场文书
关于环保的建议书
2014/05/12 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
2014年质检员工作总结
2014/11/18 职场文书
岳庙导游词
2015/02/04 职场文书
鲁迅故里导游词
2015/02/05 职场文书
2015年秋季运动会前导词
2015/07/20 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书
​(迎国庆)作文之我爱我的祖国
2019/09/19 职场文书