jQuery on()方法绑定动态元素的点击事件无响应的解决办法


Posted in Javascript onJuly 07, 2016
$('#check_all').on('click' , function(){
alert(1);
});
$("#yujinlist").append(html);
count++; 
}

以上代码执行时,点击#check_all时,alert一直没反应,后在网上查资料时,才知道on前面的元素也必须在页面加载的时候就存在于dom里面, 那原话是这样的:

支持给动态元素和属性绑定事件的是live和on,其中live在JQUERY 1.7之后就不推荐使用了。现在主要用on,使用on的时候也要注意,on前面的元素也必须在页面加载的时候就存在于dom里面。动态的元素或者样式等,可以放在on的第二个参数里面。

因为我先输出相关html,再执行就没问题了。

<div class="row">\
<div class="col-xs-12">\
<div class="control-group">\
<label class="control-label bolder blue">选择镇街</label>\
<div class="row">\
<div class="checkbox col-xs-1">\
<label>\
<input type="checkbox" class="checkbox" id="check_all" />\
<span class="lbl">全区</span>\
</label>\
</div>\
<div id="check_item">\
<div class="checkbox col-xs-1 ">\
<label>\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">西南街道</span>\
</label>\
</div>\
<div class="checkbox col-xs-1 ">\
<label>\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">云东海街道</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label>\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">白坭镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">乐平镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">大塘镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">芦苞镇</span>\
</label>\
</div>\
<div class="checkbox col-xs-1">\
<label class="block">\
<input name="towm'+count+'" type="checkbox" class="checkbox" />\
<span class="lbl">南山镇</span>\
</label>\
</div>\
</div>\
</div>\
</div>\
</div>\
</div>\
<hr />'; 
$('#check_all').on('click' , function(){
var that = this;
$('#check_item').find('input:checkbox')
.each(function(){
alert(2);
this.checked = that.checked;
$(this).closest('.col-xs-1').toggleClass('selected');
});
});

下面看下jquery on() 方法绑定动态元素

jQuery on()方法是官方推荐的绑定事件的一个方法。使用 on() 方法可以给将来动态创建的动态元素绑定指定的事件,例如append等。

<div id="test">
<div class="evt">evt1</div>
</div>

错误的用法,下面方法只为第一个class 为 evt 的div 绑定了click事件,使用append动态创建的div则没有绑定

<script>
// 先绑定事件再添加div
$('#test .evt').on('click', function() {alert($(this).text())});
$('#test').append('<div class="evt">evt2</div>');
</script>

正确的用法如下:

<script>
$('body').on('click', '#test .evt', function() {alert($(this).text())});
$('#test').append('<div class="evt">evt2</div>');
</script>

以上所述是小编给大家介绍的jQuery on()方法绑定动态元素的点击事件无响应的解决办法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript 同时在IE和FireFox获取KeyCode的代码
Feb 07 Javascript
JQuery调webservice实现邮箱验证(检测是否可用)
May 21 Javascript
js类定义函数时用prototype与不用的区别示例介绍
Jun 10 Javascript
分享20款美化网站的 jQuery Lightbox 灯箱插件
Oct 10 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
Dec 03 Javascript
网页禁用右键菜单和鼠标拖动选择方法小结
Feb 25 Javascript
JS批量替换内容中关键词为超链接
Feb 20 Javascript
jQuery模拟窗口抖动效果
Mar 15 Javascript
用p5.js制作烟花特效的示例代码
Mar 21 Javascript
Vue.js项目实战之多语种网站的功能实现(租车)
Aug 07 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
Sep 27 Javascript
vue路由传参页面刷新参数丢失问题解决方案
Oct 08 Javascript
Bootstrap3使用typeahead插件实现自动补全功能
Jul 07 #Javascript
Node.js DES加密的简单实现
Jul 07 #Javascript
使用bootstrap typeahead插件实现输入框自动补全之问题及解决办法
Jul 07 #Javascript
使用Bootstrap typeahead插件实现搜索框自动补全的方法
Jul 07 #Javascript
jQuery插件Flexslider实现图片轮播、图文结合滑动切换效果
Apr 16 #Javascript
内容滑动切换效果jquery.hwSlide.js插件封装
Jul 07 #Javascript
jQuery实现下拉菜单(内容为时间)的实时更新及图表的随动更新的方法
Jul 07 #Javascript
You might like
Php Mssql操作简单封装支持存储过程
2009/12/11 PHP
使用PHP实现密保卡功能实现代码&amp;lt;打包下载直接运行&amp;gt;
2011/10/09 PHP
PHP内置过滤器FILTER使用实例
2014/06/25 PHP
PHP中加密解密函数与DES加密解密实例
2014/10/17 PHP
smarty中post用法实例
2014/11/28 PHP
基于Laravel-admin 后台的自定义页面用法详解
2019/09/30 PHP
用js的document.write输出的广告无阻塞加载的方法
2014/06/05 Javascript
Nodejs中自定义事件实例
2014/06/20 NodeJs
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
javascript中checkbox使用方法实例演示
2015/11/19 Javascript
js中 计算两个日期间的工作日的简单实例
2016/08/08 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
下载给定网页上图片的方法
2014/02/18 Python
详尽讲述用Python的Django框架测试驱动开发的教程
2015/04/22 Python
在Django的URLconf中进行函数导入的方法
2015/07/18 Python
在Python的Flask中使用WTForms表单框架的基础教程
2016/06/07 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
基于python的图片修复程序(实现水印去除)
2018/06/04 Python
python 变量初始化空列表的例子
2019/11/28 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
pycharm无法安装第三方库的问题及解决方法以scrapy为例(图解)
2020/05/09 Python
python实现npy格式文件转换为txt文件操作
2020/07/01 Python
使用Python文件读写,自定义分隔符(custom delimiter)
2020/07/05 Python
HTML5制作表格样式
2016/11/15 HTML / CSS
英语专业职业生涯规划范文
2014/03/05 职场文书
警示教育活动总结
2014/05/05 职场文书
出纳2015年度工作总结范文
2015/10/14 职场文书
什么是检讨书?检讨书的格式及范文
2019/11/05 职场文书
Nginx解决前端访问资源跨域问题的方法详解
2021/03/31 Servers
PHP使用非对称加密算法RSA
2021/04/21 PHP
css3 实现文字闪烁效果的三种方式示例代码
2021/04/25 HTML / CSS
Redis分布式锁的7种实现
2022/04/01 Redis
引用计数法和root搜索算法以及JVM中判定对象需要回收的方法
2022/04/19 Java/Android
SQL Server中使用表变量和临时表
2022/05/20 SQL Server