javascript - jq动态添加的元素使用on()无法绑定click事件
本文介绍了javascript - jq动态添加的元素使用on()无法绑定click事件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
使用jquery1.10版本,动态在一个div.里面增加a元素,包含有span子元素。我要在span子元素上添加一个click事件,点击span元素删除整个a元素,但是试了很多方法都不行,直接用clik ,不行,用on()方法也不行。
$(".tags .btn_confirm").click(function(){
var text = $(this).text();
//添加的a元素
var node = $("<a href='#' class='tseleced btn_confirm'>"+text+ "<span class='tags_closebtn'>X</span></a>");
if($(".tags_selected").children().length >= 8){
$(".selector_warn").show();
}else{
$(".selector_warn").hide();
$(".tags_selected").append(node);
}
})
//这里使用on(),方法,console.log()没有打印任何东西
$(".tags_closebtn").on("click",function(e){
console.log(e);
$(this).prev().remove()
})
解决方案
使用live
$("button").live("click",function(){
});
原因是jquery的事件绑定在页面加载时就已经完成,所以之后动态添加的class将无法绑上事件,所以使用live可以解决这个问题。不过live只支持jquery1.9以前(大概),之后版本的就可以使用
$('body').on("click", ".tags_closebtn", function () {
});
这篇关于javascript - jq动态添加的元素使用on()无法绑定click事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文