var html = '<div><a href="#" id="test">Btn</a></div>';
$(html).find("#test").click(function(){
console.log("clicked");
});
//later
$(htmlNode).html(html);
为什么我没有收到“点击”日志?
发布于 2011-04-18 23:29:32
与上面一样,您正在尝试将click事件添加到一个尚不存在的dom元素中。
$.live是一个不错的选择,但不幸的是,在大型应用程序中维护起来很痛苦,而且速度相当慢。
您可以将事件绑定包装在超时中,这会将事件绑定推到队列的末尾-这意味着事件绑定将在您将新元素推送到dom之后执行。如下所示:
var html = '<div><a href="#" id="test">Btn</a></div>';
setTimeout(function(){$("#test").click(function(){
console.log("clicked");
});},0);
//later
$(htmlNode).html(html);
https://stackoverflow.com/questions/5704140
复制相似问题