[英]Javascript .addEventListener isn't working
這可能是個愚蠢的問題,但我是 Javascript 的新人,我真的無法理解。
所以我的頁面上有一堆 Chart.js 圖表,我想添加一些自定義行為。 我制作了這樣的函數來為不同的圖表生成不同的監聽器:
const listenerPointerUp = (params) =>
evt => {
//code
}
並設置它們:
canvas.addEventListener('pointerup', listenerPointerUp(params));
但是聽眾只是沒有工作,盡管他們在 Chrome 中
直到我嘗試:
canvas.onpointerup = listenerPointerUp(params)
然后它開始工作得很好。
我想知道是什么導致了這種行為?
我希望我提供了足夠的數據來找出我的錯誤。 我想不是由其他上下文引起的。
你可以這樣撥打 function
canvas.addEventListener('pointerup', function(e) {
listenerPointerUp(params,e)
});
const listenerPointerUp = (params,evt) =>{
//code
}
工作正常
canvas.onpointerup = listenerPointerUp(params)
function 在事件中正確分配的調用
為什么?
function 觸發 window 加載不是事件調用。 而且聽眾沒有為事件正確分配 function
let params = "clicked" document.querySelector('#demo').addEventListener('click', listenerPointerUp(params)); function listenerPointerUp(e) { console.log(e) }
<button id="demo">click</button>
解決方案
let params = "clicked" document.querySelector('#demo').addEventListener('click', ()=>listenerPointerUp(params)); function listenerPointerUp(e) { console.log(e) }
<button id="demo">click</button>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.