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 相关文章推荐
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
Dec 02 Javascript
JS无法捕获滚动条上的mouse up事件的原因猜想
Mar 21 Javascript
把jQuery的类、插件封装成seajs的模块的方法
Mar 12 Javascript
jQuery限制图片大小的方法
May 25 Javascript
全面解析JavaScript中“&amp;&amp;”和“||”操作符(总结篇)
Jul 18 Javascript
js实现九宫格拼图小游戏
Feb 13 Javascript
详解Vue 动态添加模板的几种方法
Apr 25 Javascript
node.js 中间件express-session使用详解
May 20 Javascript
详解Vue-cli3.X使用px2rem遇到的问题
Aug 09 Javascript
webstorm建立vue-cli脚手架的傻瓜式教程
Sep 22 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
Nov 04 Javascript
JavaScript+HTML实现学生信息管理系统
Apr 20 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
评分9.0以上的动画电影,剧情除了经典还很燃
2020/03/04 日漫
php类
2006/11/27 PHP
新手学PHP之数据库操作详解及乱码解决!
2007/01/02 PHP
解析php dirname()与__FILE__常量的应用
2013/06/24 PHP
php 字符串压缩方法比较示例
2014/01/23 PHP
什么情况下可以不写PHP的闭合标签“?&gt;”
2014/08/28 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
大家须知简单的php性能优化注意点
2016/01/04 PHP
PHP微信支付结果通知与回调策略分析
2019/01/10 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
基于JavaScript实现继承机制之原型链(prototype chaining)的详解
2013/05/07 Javascript
javasciprt下jquery函数$.post执行无响应的解决方法
2014/03/13 Javascript
轻松创建nodejs服务器(10):处理POST请求
2014/12/18 NodeJs
JavaScript中用toString()方法返回时间为字符串
2015/06/12 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
Bootstrap滚动监听组件scrollspy.js使用方法详解
2017/07/20 Javascript
JS解析url查询参数的简单代码
2017/08/06 Javascript
在Vue项目中使用snapshot测试的具体使用
2019/04/16 Javascript
JS浮点数运算结果不精确的Bug解决
2019/08/01 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
2019/11/20 Javascript
工作中常用js功能汇总
2020/11/07 Javascript
跟老齐学Python之总结参数的传递
2014/10/10 Python
安装python3的时候就是输入python3死活没有反应的解决方法
2018/01/24 Python
浅谈Python黑帽子取代netcat
2018/02/10 Python
python中abs&amp;map&amp;reduce简介
2018/02/20 Python
python中 _、__、__xx__()区别及使用场景
2020/06/30 Python
Python如何对齐字符串
2020/07/30 Python
Django restful framework生成API文档过程详解
2020/11/12 Python
基于CSS3的CSS 多栏(Multi-column)实现瀑布流源码分享
2014/06/11 HTML / CSS
Linux文件操作命令都有哪些
2016/07/23 面试题
信息技术教学反思
2014/02/12 职场文书
投标人廉洁自律承诺书
2014/05/26 职场文书
2014年团队工作总结
2014/11/24 职场文书
2016年党员承诺书范文
2016/03/24 职场文书
MySQL的prepare使用以及遇到的bug
2022/05/11 MySQL