如何解决淡出原始JavaScript后删除项目
我正在开发简单的待办事项列表应用程序。当我单击X时,我想添加一个CSS类,然后我想用JavaScript删除该项目;但是,我要等待动画结束。我的代码如下:
let spans = document.querySelectorAll("span");
for (i = 0; i < spans.length; i++) {
spans[i].addEventListener("click",function() {
event.stopPropagation(); //stop bubbling effect
this.parentElement.classList.add("fadeOut");
setTimeout(function() {
this.parentElement.remove(); //removing parent element with its contains
},500)
})
}
<li><span>X</span> Go sleep </li>
但是我收到Uncaught TypeError: Cannot read property 'remove' of undefined at script.js:18
错误。如何将要删除的元素传递给函数?
解决方法
好的,我已经在setTimeout函数之外声明了const,它解决了问题,这是一个代码:
for(i = 0; i < spans.length; i++){
spans[i].addEventListener("click",function(){
const el = this //Here I declare that constant
event.stopPropagation();
this.parentElement.classList.add("fadeOut");
setTimeout(function(){
el.parentElement.remove(); //removing parent element with its contains
},500)
})}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。