当事件监听器直接添加到 HTML 文件中时如何删除它
有一个按钮,我要使用innerHTML添加到页面中,该按钮上有一个事件侦听器onclick="addWatchlist()"
,在下面,我将从按钮中删除该事件通过另一个事件侦听器,但我无法使用 removeEventListener("click",addWatchlist) 来完成此操作。
我已阅读:
- 为什么removeEventListener不起作用?
- Javascript removeEventListener 不工作
它们是关于删除使用 javascript addEventListener 添加的事件。但这里我们将事件直接添加到 HTML 中。
<button class="watch-list-btn" onclick="addWatchlist()">Watchlist </button>
watchlist.addEventListener("click",function(){
conatinerDown.innerHTML =""
conatinerDown.innerHTML +=movieWatchlistArray.map(each=> {
return each.outerHTML
}).join("")
// loop through movie list and changes text and removes event listener.
for(let i=0 ;i<moviePageNumber;i++ ){
document.querySelector(`.movie-${i} .watch-list-btn`).textContent = "remove"
document.querySelector(`.movie-${i} .watch-list-btn`).removeEventListener("click",addWatchlist)
}
})
// adds movie to start of an array called movieWatchlistArray
function addWatchlist(){
movieWatchlistArray.unshift(document.querySelector(`.movie-${moviePageNumber-1}`))
console.log(movieWatchlistArray)
}
有没有办法删除该事件?无需将 HTML 更改为以下内容:
<button class="watch-list-btn">Watchlist </button>
there is a button that I am going to add to the page with innerHTML the button has an eventlistener on it onclick="addWatchlist()"
and in bellow, I am going to remove the event from the button by another event listener but I can't do it with removeEventListener("click",addWatchlist).
I have readen:
- why doesn't removeEventListener work?
- Javascript removeEventListener not working
they are about removing events that are added with javascript addEventListener.but here we add the event directly into HTML.
<button class="watch-list-btn" onclick="addWatchlist()">Watchlist </button>
watchlist.addEventListener("click",function(){
conatinerDown.innerHTML =""
conatinerDown.innerHTML +=movieWatchlistArray.map(each=> {
return each.outerHTML
}).join("")
// loop through movie list and changes text and removes event listener.
for(let i=0 ;i<moviePageNumber;i++ ){
document.querySelector(`.movie-${i} .watch-list-btn`).textContent = "remove"
document.querySelector(`.movie-${i} .watch-list-btn`).removeEventListener("click",addWatchlist)
}
})
// adds movie to start of an array called movieWatchlistArray
function addWatchlist(){
movieWatchlistArray.unshift(document.querySelector(`.movie-${moviePageNumber-1}`))
console.log(movieWatchlistArray)
}
is there a way to remove the event? without changing the HTML to something like :
<button class="watch-list-btn">Watchlist </button>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以获取该元素并将 onclick 属性设置为 null。
You can get the element and set the onclick attribute to null.
现在你可以编写 javascript
这段代码将适合你。
now you can write the javascript
This code will work for you.