簡體   English   中英

如何使元素觸發任何和所有事件的功能?

[英]How can I make an element trigger a function on any, and all events?

我認為對我的具體情況的解釋在這里沒有多大幫助。 所以簡而言之,我需要知道如何在任何和所有事件上調用函數。 這個想法是無論特定元素發生什么事件都調用相同的函數。

在我看來,理想的方法是這樣的:

<div onAnyEvent="function()"></div>

而不是:

<div onClick="function()" onMouseover="function()" onKeypress="function()"></div>

我通過研究發現的最佳方法是為同一元素上的每個事件創建一個事件偵聽器,如下所示:

window.onload = addListeners;

function addListeners(){
  if(window.addEventListener){
    document.getElementById('message').addEventListener('keydown',textarea_resize,false);
    document.getElementById('message').addEventListener('keyup',textarea_resize,false);
    document.getElementById('message').addEventListener('keypress',textarea_resize,false);
}

進一步解釋一下:

addEventListener('event to listen to', function_to_be_called, useCapture-value)

第一個參數是您要收聽的事件(即'click''keydown' )。

第二個是您要調用的函數:(即validate_form )。

-您還可以將參數發送到函數中: validate_form(e, i)

對於大多數用途,使用捕獲的最后一個值通常設置為false ,如果您不指定任何值,則false是自動值。 進一步的解釋可以在 這里獲得!

所以一個完整的例子可能是: document.getElementById('message').addEventListener('keydown',textarea_resize,false); 正如我在上面展示的那樣。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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