JavaScript中的事件處理程序和事件偵聽器有什麼區別?當事件出現時,它們都執行一個功能。 我真的不知道何時使用事件處理程序以及何時使用事件偵聽器。JavaScript - 事件處理程序和偵聽程序有什麼區別?
回答
沒有區別;對於同樣的事情,它只是不同的術語。
爲了事件處理的目的,有不同的方法將函數與DOM元素關聯起來,就是這樣。當標準不斷變化時(或者僅僅因爲實施者是角逐或困難),但最終機制基本上是相同的。
如果你感到困惑什麼樣的事件處理程序的註冊使用,您可以:
- Read more about the topic並選擇使用,或者在瀏覽器的瀏覽器基礎上的方法;
- 選擇流行的JavaScript框架之一,使用它的機制用於連接處理器
處理程序和一個監聽器是在同一個 - 只爲將處理事件功能的同義詞。 「處理程序」可能是更爲接受的術語,對我而言,語義上肯定更正確。術語「聽衆」是從用於將事件添加到元素的代碼導出:
element.addEventListener('click', function() { /* do stuff here*/ }, false);
你可以,不過,得到真正挑剔,並打破這兩個分解成不同的意思。如果你非常喜歡,「處理程序」可以是添加「監聽程序」時要處理事件的函數的術語,因此可以有多個使用單個「處理程序」的「監聽程序」。考慮:
// handler is synonymous with function
function someFunction(e) {
if (typeof e == 'undefined')
alert('called as a function');
else
alert('called as a handler');
}
// use someFunction as a handler for a
// click event on element1 -- add a "listener"
element.addEventListener('click', someFunction, false);
// use an anonymous function as a handler for a
// click event on element1 -- add another "listener"
element.addEventListener('click', function() { alert('anonymoose'); }, false);
// use someFunction as a handler for a
// click event on element2 -- add a "listener"
element2.addEventListener('click', someFunction, false);
// call someFunction right now
someFunction();
因此,在上面的代碼中,我有2個「處理程序」(someFunction和匿名函數)和3「收聽」。
此外,這是所有語義 - 對於所有實際用途,術語監聽器和處理程序可互換使用。如果需要做出區分,那麼聽衆是對將觸發對處理者(其是功能)的呼叫的事件的訂閱。
清除泥?
爲了使它與註釋一致,可以使其成爲「element1.addEventListener(...)」 –
或多或少與Java中的相同。 http://stackoverflow.com/a/4725508/3184778。現在更有意義。 Thx – kouretinho
_Anonymoose_ LOL:P. – Arjun
- 1. 事件處理程序和事件偵聽器之間有什麼區別?
- 2. Android中的事件處理程序和事件監聽器有什麼區別?
- 3. click事件處理程序和ngClick指令有什麼區別?
- 4. JavaFX事件/偵聽器/處理程序
- 5. 靜態事件處理程序和非靜態事件處理程序之間有什麼區別
- 6. 事件偵聽器與事件處理程序
- 7. 事件處理程序等效事件偵聽器
- 8. 線程和處理程序有什麼區別
- 9. 委託類型和事件處理程序類型有什麼區別?
- 10. nativeElement.click()和事件處理程序的點擊之間有什麼區別?
- 11. 發佈工具和索引處理程序有什麼區別?
- 12. JavaScript事件處理程序
- 13. Javascript事件處理程序
- 14. JavaScript事件處理程序
- 15. HTML事件處理程序與DOM級別0事件處理程序之間的區別
- 16. JavaScript類和事件處理程序
- 17. JavaScript事件處理程序 - 爲什麼沒有提醒?
- 18. 代碼和程序有什麼區別?
- 19. 事件處理程序和監聽器和事件冒泡和事件捕獲
- 20. 事件處理程序和回調函數之間的區別
- 21. Meteor.js中模板幫助程序和模板事件處理程序的區別
- 22. jQuery - 追加/替換事件偵聽器(當事件處理程序未知時)
- 23. HTML事件處理程序與React事件處理程序
- 24. 消息處理程序和命令處理程序之間有區別嗎?
- 25. 在事件監聽器中使用處理程序構造函數:有什麼區別?
- 26. .NET - 從對象中刪除所有偵聽器事件處理程序
- 27. C#事件和事件處理程序
- 28. CPP/CLI程序集和CS/VB程序集有什麼區別?
- 29. Rack應用程序和Sinatra應用程序有什麼區別?
- 30. 程序和應用程序有什麼區別?
感謝您的回答。所以,當這兩者之間沒有區別時,我只會使用事件處理程序,因爲瀏覽器支持。 (我需要兩個監聽器,但只有一個處理器)。 –
但是......「偵聽器」和「處理器」之間沒有區別,所以你有三個偵聽器,三個處理器或任何組合。事實上,這可能不是一種很好的習慣,可以將不同的方式聯繫在一起。 – Pointy
恩,我不會混合他們。我只是說我只需要一個處理程序而不是兩個偵聽器(一個用於NS事件模型的偵聽器,另一個用於MS事件模型)。 –