为什么我用jquery点击添加的元素,不能进行点击移除

为什么我用jquery点击添加的元素,不能进行点击移除,第1张

时序问题。

你之前写的是在页面加载完成之后 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(){

})


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11573772.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存