
时序问题。
你之前写的是在页面加载完成之后 jquery 会进行DOM节点绑定,所以能移除
之后你点击节点添加,只是添加页面元素,但是这个元素并没有绑定任何事件,所以不能点击移除。
$(".cc").click(function () {$(this).before("<div class='aa'><div class='bb'>x</div></div>")
bb()
})
var bb = function () {
$(".bb").click(function () {
var cls = $(this).parent().remove()
})
}
bb()
这是因为你这里的this并不是点击的那个i标签,而是window对象。你可以这样改:function del_action(e){
$(e).parent().remove()
}
然后html中的调用要这样:
onclick="del_action(this)"
最好的办法是这样:
$("span.city i").click(function(){
$(this).parent().remove() //这时候的this就是i本身
})
这样html中的i标签就不需要加onclick了
使用事件代理。。可以用jq中的on,或者delegate来做
$('body').on('click',"#btn",function(){
})
这样写就是为后来添加的元素绑定事件用的。。
$('table').on('blur','input',function(){
})
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)