javascript 为什么通过动态添加的元素没有点击事件?

2024-11-15 22:27:41
推荐回答(3个)
回答(1):

那是因为当程序第一次执行到
$("#children").click(function(){
alert("I'm children");
})
这里时,$("#children")这个对象并不存在,程序就会判定为出错,那个这个事件代码就无效了。
你应该在动态生成元素的同时也动态生成事件过程,而不是先生成一个子虚乌有的事件来等着元素对号入座。

回答(2):

jquery中绑定事件一般使用bind,或者click,但是这只能是对已经加载好的元素定义事件,那些后来添加插入的元素则需要另行绑定。


jquery 1.7版以后使用on动态绑定事件

$("#children").click(function(){
    alert("I'm children");
})
改成
$("#children").on("click","#children", function() {
    alert("I'm children");
})

回答(3):

点击事件要放里面添加,像这样
$(function(){

//点击container时动态添加 id="children" 的子元素
$("#container").one("click", function(){
$(this).append("

children content
");
//为什么点击children 没有弹出内容 ???
$("#children").click(function(){
alert("I'm children");
})
})})