簡體   English   中英

Javascript.addEventListener 不工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM