如何使一个元素在任何和所有事件上触发一个函数
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);
,正如我上面展示的。
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 我可以在json对象中添加一个函数吗
- Javascript使函数一个接一个地执行
- 是JavaScript中的函数一个对象
- 两个几乎相等的jQuery函数;一个适用于IE,一个不适用于IE
- 两个Javascript函数一个window.onload=Custom.init;和一个window.onload=f
- 使javascript加载函数一个接一个地执行
- 如何通过两个嵌套的匿名函数(一个带有超时的事件处理程序)传递变量
- 为什么我不能让两个jQuery函数一个在另一个里面呢?
- 给函数一个变量名,而不是它的值
- 如何使用嵌入函数(一个滚动页由Pete - peachananr)
- 是否有可能给JavaScript函数一个类型/类?
- 确保两个函数一个接一个地执行,其中第一个函数内部有一个异步调用
- 两个不同的ajax函数一个接一个调用返回相同的值
- jQuery第一次更改函数一个工作
- 给这个函数一个id
- 如何给回调函数一个值一个变量在特定时刻
- 使用回调使两个函数一个接一个地运行
- 两个函数(一个用php)是否可以用“;onclick”;
- 两个几乎相同的函数.一个函数用Queue进行排队.Jquery效果在queued函数上不起作用.为什么