为什么ajax加载出来的html,无法用选择器绑定事件,但可以直接在html上使用onclick等事件?

2024-11-20 09:20:40
推荐回答(4个)
回答1:

因为先后顺序的关系啊~用AJAX加载是异步加载这个应该很清楚吧~既然是异步加载那么就是非同步的,也就是说当你的整个页面加载完成后$('.div').click(function(){.....});这句根本找不到你异步加载的DIV,所以它就不会执行了,即使你之后再把

div
这个加载进来,在浏览器也不会找到这个DIV的,因为浏览器在第一次加载的时候没有找到它,并且浏览器在你加载进这个DIV来之后也不会重新渲染一次,所以找不到。

而你加载进来的
div
,是它去找的这个函数,而dofun这个函数是之前就被浏览器渲染过了,只是还没有调用,而你新加载进来的DIV正好要调用之前就已经渲染好的函数,所以就可以使用了~

主要还是异步和同步区别的关系~如果不懂再问我吧~

回答2:

jQuery 给所有匹配的元素附加一个事件处理函数,即使这个元素是以后再添加进来的也有效。
请使用

live(type, [data], fn)

回答3:

例子:http://typhoon.gotoip4.com/tfw-web-base/tfw/base/04_javascript/samples/02_ajax_data_mgr

回答4:

之前需要引用jquery