$(this).parent().remove()失效求助:动态内容事件绑定异常
问题原因与解决办法
我一眼就发现问题所在了——你用箭头函数绑定点击事件,导致this的指向不符合预期!
为什么会失败?
箭头函数不会创建自己的this上下文,它会直接继承外层作用域的this。所以你代码里的$(this)并不是你点击的那个.removeitem图标,自然无法找到它的父元素<li>并执行删除操作。
两种解决办法:
方法1:改用普通函数
把事件处理函数换成普通函数,这样this就会自动指向触发点击事件的.removeitem元素:
$(document).on('click', '.removeitem', function() { console.log('clicked'); $(this).parent().remove(); });
方法2:使用事件对象的target属性
如果你坚持想用箭头函数,可以通过事件参数的target属性获取触发元素:
$(document).on('click', '.removeitem', (event) => { console.log('clicked'); $(event.target).parent().remove(); });
修改后,点击红色的叉号就能正确删除对应的订阅话题列表项啦!
内容的提问来源于stack exchange,提问作者Natesh bhat
相关产品推荐
相关产品推荐

