相信很多朋友在使用jQuery的append方法来增加一个新元素后,新的元素却无法响应元素已经定义好的事件程序。
$(document).ready(function(){ $(".xz").click(function()//单击选中某个单元 { alert($(this).text()); }); }
上面的代码是响应元素中含有class=xz的,如果我用append()方法增加了一个含有class=xz的元素,该元素却无
法响应$(".xz").click()事件。
原因是$(document).ready(function(){}在网页载入时根据存在的网页结构解析元素的事件绑定,从而用append
方法新增加的元素没有绑定原来的事件,故不能响应原有的事件。
解决方法是:在使用append方法中,为元素重新绑定事件,即:
$(document).ready(function(){ $(".xz").click(function() { $("#aa").append("<span class='xz'>1111</span>"); $(".xz").click(function()//单击选中某个单元 { alert($(this).text()); }); } }
上面新增加的<span class='xz'>1111</span> 能够响应$(".xz").click()单击事件,从而弹出提示框。