javascript - 可以通过标签调用全局函数吗?

标签 javascript dom-events onfocus

我的源代码中有很多类似下面的实例:

<input id="a" type="text" name="a" maxlength="40"
 onfocus="ThisOnFocus(this)" onkeydown="ThisOnKeyDown(this)" onkeyup="ThisOnKeyUp(this)" onblur="ThisOnBlur(this)"/>

每个输入标签都以 onfocusonkeydownonkeyuponblur 函数调用结束。

我想做的是全局指定所有输入标签在这些事件上调用这些函数。在 JavaScript 中可以做到这一点吗?

编辑:我试过将它放在脚本部分,但我的函数都没有被调用:

document.onload = function() { var inputs = document.getElementsByTagName('input');
    for (i = 0; i < inputs.length; i++) {
    inputs[i].onfocus = ThisOnFocus;
    inputs[i].onblur = ThisOnBlur;
    inputs[i].onkeyup = ThisOnKeyUp;
    inputs[i].onkeydown = ThisOnKeyDown;
    }
  }

编辑:此外,区分输入复选框和文本字段可能并不重要,但这些功能都只与文本字段有关。

最佳答案

您可以使用捕获和冒泡。请注意,对于 focus 和 blur 事件,需要捕获。或者,您可以使用 focusin 和 focusout 事件。

现场演示:http://jsfiddle.net/t2KdS/

关于javascript - 可以通过标签调用全局函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8269193/

相关文章:

javascript - 如何防止在 jQuery 动画切换上重复动画?

javascript - 使用 JavaScript 调用浏览器 X 按钮

javascript - 单击键盘选项卡按钮时显示下拉菜单

javascript - 如何向尚未添加到页面的元素注册 Javascript 事件处理程序

javascript - 所有具有受支持元素的 DOM 事件?

javascript - 如何更改元素 "B"onFocus 元素 "A"的类名

javascript - 为什么点击div时会触发focusout事件

javascript - 在 foreach 循环中使用 jquery 和 php 倒数计时器不显示正确的时间

javascript - 从完全独立的组件更新 react 组件

javascript - 如何使用 particles.js?