ajax动态加载数据后的click事件问题
来源:互联网 发布:淘宝vr眼镜 编辑:程序博客网 时间:2024/06/06 18:53
问:
为什么ajax加载出来的html,无法用选择器绑定事件,但可以直接在html上使用onclick等事件?
如ajax 加载了<div class="div">div</div>
然后$('.div').click(function(){.....});
click操作无效
但是如果加载 <div onclick=dofun("prameter")>div</div>
dofun 就可以被onclick触发。
答:
因为先后顺序的关系啊~用AJAX加载是异步加载这个应该很清楚吧~既然是异步加载那么就是非同步的,也就是说当你的整个页面加载完成后$('.div').click(function(){.....});
这句根本找不到你异步加载的DIV,所以它就不会执行了,即使你之后再把<div class="div">div</div>
这个加载进来,在浏览器也不会找到这个DIV的,因为浏览器在第一次加载的时候没有找到它,并且浏览器在你加载进这个DIV来之后也不会重新渲染一次,所以找不到。
而你加载进来的<div onclick=dofun("prameter")>div</div>
,是它去找的这个函数,而dofun这个函数是之前就被浏览器渲染过了,只是还没有调用,而你新加载进来的DIV正好要调用之前就已经渲染好的函数,所以就可以使用了~
主要还是异步和同步区别的关系~
其他答案:
(1)在html骨架加载完成 js初始化的时候,并不存在<span class="add">
节点,所以他的绑定事件是无效的,可以将该事件绑定到document上通过这种事件委托的机制实现绑定 试试:$(document).on('click','span.add',function(){ ....});
(2)动态加载的数据中的某一标签是不能直接用$(“标签”).click事件的,可以用on、live、或者直接在标签里面写他的onclick事件!
参考:
https://zhidao.baidu.com/question/1732157603464634587.html
http://bbs.csdn.net/topics/390985786
- ajax动态加载数据后的click事件问题
- highcharts click事件获取数据传给datagrid ,动态加载数据
- ISO下动态加载数据的click点击事件无效的情况
- 动态生成的html绑定click事件没有效果不执行 click事件重复绑定问题
- ajax获取动态列表数据后的分页问题
- 瀑布流 或者动态加载 click点击无效的问题
- 解决动态生成input无法触发click事件的问题
- 解决动态生成input无法触发click事件的问题
- 记录<a>标签使用中click事件中ajax提交数据后,整体页面也做了刷新操作的坑
- AJAX加载了HTML但是HTML里面的CLICK事件无效
- jquery在ajax新添加的元素后绑定事件click
- ios和安卓的input的click事件和change事件的加载顺序问题。
- 获取动态加载ajax的数据
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- AJAX动态创建HTML元素click事件无效
- HDU2066 一个人的旅行(Dijkstra)
- Java学习笔记(关键字 标识符 了解编译 注释 注释应用 )
- C++模板(template)
- JDK8 中关于集合的遍历
- 5-29 删除字符串中的子串 (20分)
- ajax动态加载数据后的click事件问题
- hdu 5831 Rikka with Parenthesis II
- DP入门题目
- hi3519 编译问题
- 会场安排问题
- linux如何卸载自带的openJdk,并且安装jdk1.8
- hdu 5826 physics
- java容器/集合框架
- 产品需求分析,应遵循怎样的步骤?