$(document).ready(function(){ $('#graphdiv>table').click( function(){ console.log('hi'); } ); })
如上在页面载入时绑定,然后我再用ajax添加了table,但是新添加的table无法响应click
除了js onclick事件还有什么方法可以解决吗?
谢谢
$(document).ready(function(){ $('#graphdiv>table').click( function(){ console.log('hi'); } ); })
如上在页面载入时绑定,然后我再用ajax添加了table,但是新添加的table无法响应click
除了js onclick事件还有什么方法可以解决吗?
谢谢
table元素是新添加的,在首次加载时,并没有$('#graphdiv>table')。怎么绑定函数?
可以使用事件委托,将子元素的事件委托给父元素监听。直接给父元素绑定事件监听,事件发生时,检测其子元素是否符合条件。符合则触发子元素的事件。这样动态添加的子元素也有效。
类似:
ul.addEventListener("click", function(e){
if(e.currentTarget.tagName == "li"){
//做些什么
}
},false);
jquery用delegate()实现了事件委托。这样,既减少了时间监听的数量,也能为动态添加的元素绑定事件。
具体实现,楼上几位已经给了解答
10 回答11.7k 阅读
2 回答3.2k 阅读✓ 已解决
4 回答2.2k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
3 回答832 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
这种情况,你应该使用 事件代理