为什么ajax加载出来的html,无法用选择器绑定事件,连行内的弹框都不能运行?
需要ajax动态获取数据添加到已经加载完成的html里面时,总是出错。先调用remove()或empty()把元素的子节点全部清空,然后调用append()函数追加节点。...
需要ajax动态获取数据添加到已经加载完成的html里面时,总是出错。
先调用remove()或empty()把元素的子节点全部清空,然后调用append()函数追加节点。这个节点我已经在行内写了onclick事件了,而且只是弹出一个窗口, 我通过控制台观察,发现已经追加成功,而且语法上没有任何错误。但,就是不能弹框。
我也是彻底不知道怎么办了,网上说的方法里面这是第一种,也是最行之有效的,可是这都运行不了,请问为什么!
主要的代码是:
经过反复调试 ,如果删除掉:$("#u2 li").remove() ,就是删除子元素的那行代码,就能弹框了,这函数是怎么回事,难道是 jquery 的 bug ? 展开
先调用remove()或empty()把元素的子节点全部清空,然后调用append()函数追加节点。这个节点我已经在行内写了onclick事件了,而且只是弹出一个窗口, 我通过控制台观察,发现已经追加成功,而且语法上没有任何错误。但,就是不能弹框。
我也是彻底不知道怎么办了,网上说的方法里面这是第一种,也是最行之有效的,可是这都运行不了,请问为什么!
主要的代码是:
经过反复调试 ,如果删除掉:$("#u2 li").remove() ,就是删除子元素的那行代码,就能弹框了,这函数是怎么回事,难道是 jquery 的 bug ? 展开
1个回答
推荐于2016-03-15
展开全部
用事件代理啊。
jq里面有live、on几个事件都可以。
$('#u2').on('click','a',function(){
alert('runing')
})
jq里面有live、on几个事件都可以。
$('#u2').on('click','a',function(){
alert('runing')
})
更多追问追答
追问
试了bind,live都没有效。还有什么办法么?
追答
不可能没有效果啊。
或者你可以试试在append之后做一次事件操作看看
$('#u2').append(str)
$('#u2').find('a').click(function(){})
如果这样还是不行,那就是代码有问题了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询