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 相关文章推荐
jQuery新的事件绑定机制on()示例应用
Jul 18 Javascript
JavaScript操作cookie类实例
Mar 31 Javascript
移动端点击态处理的三种实现方式
Jan 12 Javascript
关于jQuery库冲突的完美解决办法
May 20 jQuery
利用vueJs实现图片轮播实例代码
Jun 03 Javascript
axios简单实现小程序延时loading指示
Jul 30 Javascript
Vue axios设置访问基础路径方法
Sep 19 Javascript
angular 实现下拉列表组件的示例代码
Mar 09 Javascript
微信小程序实现页面跳转传递参数(实体,对象)
Aug 12 Javascript
关于vue里页面的缓存详解
Nov 04 Javascript
JavaScript面向对象核心知识与概念归纳整理
May 09 Javascript
Express 配置HTML页面访问的实现
Nov 01 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&amp;&amp;mysql)二
2006/10/09 PHP
使用eAccelerator加密PHP程序
2008/10/03 PHP
php fckeditor 调用的函数
2009/06/21 PHP
ThinkPHP做文字水印时提示call an undefined function exif_imagetype()解决方法
2014/10/30 PHP
PHP的伪随机数与真随机数详解
2015/05/27 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
Yii2处理密码加密及验证的方法
2019/05/12 PHP
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
php跨域调用json的例子
2013/11/13 Javascript
在线一元二次方程计算器实例(方程计算器在线计算)
2013/12/22 Javascript
文本域中换行符的替换示例
2014/03/04 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
ajax分页效果(bootstrap模态框)
2017/01/23 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
Bootstrap fileinput 上传新文件移除时触发服务器同步删除的配置
2018/10/08 Javascript
layui实现二维码弹窗、并下载到本地的方法
2019/09/25 Javascript
[01:32]2016国际邀请赛中国区预选赛IG战队首日赛后采访
2016/06/27 DOTA
Python实现豆瓣图片下载的方法
2015/05/25 Python
python将unicode转为str的方法
2017/06/21 Python
Python PyQt5实现的简易计算器功能示例
2017/08/23 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
python编程嵌套函数实例代码
2018/02/11 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
详解python算法常用技巧与内置库
2020/10/17 Python
CSS3中的注音对齐属性ruby-align用法指南
2016/07/01 HTML / CSS
什么是命名空间(NameSpace)
2015/11/24 面试题
行政助理的职责
2013/11/14 职场文书
逃课打麻将检讨书
2014/10/05 职场文书
优秀班组申报材料
2014/12/25 职场文书
大学生青年志愿者活动总结
2015/05/06 职场文书
2015年行风建设工作总结
2015/05/15 职场文书
同事去世追悼词
2015/06/23 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python