js 我用的jquery 在做一个Bootstrap的项目时,遇到了一个问题,也是折腾了半天才解决。
问题描述 及 解决方案:
append() 进页面的标签无法触发 click 事件。必须要用 on() 方法解决。
APP 中接收数据代码:
假设 a 标签是 append() 进去的动态标签
(下面的方法是获取不到的)
<div class="div1">
<a class='a1' href="javascript:;"></a>
</div>
<script>
$('.a1').on("click",function(){
alert('已触发事件!');
})
</script>
正确写法:
<div class="div1">
<a class='a1' href="javascript:;"></a>
</div>
<script>
$('body').on("click",'.a1',function(){
alert('已触发事件!');
})
</script>
on 方法前边的 选择器里面的元素必须是页面加载时就已经有的 比如 body (重要的话加粗斜体) ,可以将动态加载的 标签放入 on方法的第二个参数.
注意:
提示:虽然我知道要用on 方法,但是 我在写法上却出了岔子。真是不应该啊,还有就是有的人推荐的 live() 方法,这个方法 在jquery 1.7以后就不支持了, 所以最好还是用 on方法。