Node事件模組

Node.js的events模組提供了EventEmitter類別 events模組為我們提供了EventEmitter類別,這是在Node中處理事件的關鍵。 我在這篇完整的文章中發布了更多詳細內容,所以在這裡我僅描述API而不提供進一步的用例。 const EventEmitter = require('events') const door = new EventEmitter() 事件監聽器也使用這些事件: newListener 當監聽器被添加時 removeListener 當監聽器被移除時 以下是最常用方法的詳細說明: emitter.addListener() emitter.emit() emitter.eventNames() emitter.getMaxListeners() emitter.listenerCount() emitter.listeners() emitter.off() emitter.on() emitter.once() emitter.prependListener() emitter.prependOnceListener() emitter.removeAllListeners() emitter.removeListener() emitter.setMaxListeners() emitter.addListener() emitter.on()的別名。 emitter.emit() 觸發一個事件。按照它們註冊的順序同步調用每個事件監聽器。 emitter.eventNames() 返回一個字串陣列,表示當前EventListener上註冊的事件: door.eventNames() emitter.getMaxListeners() 獲取可以添加到EventListener對象的最大監聽器數量,默認為10,但可以通過使用setMaxListeners()增加或減少。 door.getMaxListeners() emitter.listenerCount() 獲取傳遞的事件的監聽器的數量: door.listenerCount('open') emitter.listeners() 獲取傳遞的事件的監聽器數組: door.listeners('open') emitter.off() emitter.removeListener()在Node 10中新增的別名。 emitter.on() 添加在事件觸發時調用的回調函數。 用法: door.on('open', () => { console.log('門被打開了') }) emitter.once() 添加在註冊後僅在首次觸發事件時調用的回調函數。這個回調函數只會被調用一次,後續不再調用。 const EventEmitter = require('events') const ee = new EventEmitter() ee....

將 click 事件添加到從 querySelectorAll 返回的 DOM 元素上

如何迭代 NodeList 並為每個元素附加事件監聽器 您可以通過使用 for..of 循環迭代 document.querySelectorAll() 調用返回的所有元素來為它們添加事件監聽器: const buttons = document.querySelectorAll("#select .button") for (const button of buttons) { button.addEventListener('click', function(event) { //... }) } 需要注意的是,document.querySelectorAll() 返回的不是數組,而是 NodeList 對象。 如果你希望,你可以使用 forEach 或 for..of 對它進行迭代,或者使用 Array.from() 將它轉換為數組。