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 HTML中的table
Apr 15 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
Aug 03 Javascript
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
Nov 28 Javascript
Jquery index()方法 获取相应元素索引值
Oct 12 Javascript
JavaScript蒙板(model)功能的简单实现代码
Aug 04 Javascript
JS中Array数组学习总结
Jan 18 Javascript
JavaScript中object和Object的区别(详解)
Feb 27 Javascript
Vue实现自带的过滤器实例
Mar 09 Javascript
node.js中http模块和url模块的简单介绍
Oct 06 Javascript
Vue.js实现开发购物车功能的方法详解
Feb 22 Javascript
JS实现的tab切换并显示相应内容模块功能示例
Aug 03 Javascript
记一次vue跨域的解决
Oct 21 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
基于flush()不能按顺序输出时的解决办法
2013/06/29 PHP
PHP中ini_set和ini_get函数的用法小结
2014/02/18 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
用javascript实现兼容IE7的类库 IE7_0_9.zip提供下载
2007/08/08 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
javascript椭圆旋转相册实现代码
2012/01/16 Javascript
js中return false(阻止)的用法
2013/08/14 Javascript
扒一扒JavaScript 预解释
2015/01/28 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
vue2.0开发实践总结之疑难篇
2016/12/07 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
使用angular帮你实现拖拽的示例
2017/07/05 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
详解VUE2.X过滤器的使用方法
2018/01/11 Javascript
vue中vee validate表单校验的几种基本使用
2018/06/25 Javascript
Vue.js实现表格渲染的方法
2018/09/07 Javascript
Python基于hashlib模块的文件MD5一致性加密验证示例
2018/02/10 Python
Python实现时钟显示效果思路详解
2018/04/11 Python
对Python w和w+权限的区别详解
2019/01/23 Python
Pandas的read_csv函数参数分析详解
2019/07/02 Python
django之静态文件 django 2.0 在网页中显示图片的例子
2019/07/28 Python
Python第三方包之DingDingBot钉钉机器人
2020/04/09 Python
TensorFlow的reshape操作 tf.reshape的实现
2020/04/19 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
2020/09/23 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
现代化办公人员工作的自我评价
2013/10/16 职场文书
铁路个人事迹材料
2014/01/30 职场文书
护士长竞聘书
2014/03/31 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
上市公司财务总监岗位职责
2015/04/03 职场文书
2016年党风廉政建设承诺书
2016/03/25 职场文书
Pytest之测试命名规则的使用
2021/04/16 Python
Vue和Flask通信的实现
2021/05/19 Vue.js
Python正则表达式中flags参数的实例详解
2022/04/01 Python
python blinker 信号库
2022/05/04 Python