1

所以,这是我的问题。我希望能够从文档中的不同位置添加“onevent”。下面更好地解释。

假设我有一个触发器“onblur='alert(this.value)'”的输入

<input type="text" onblur="alert(this.value)" id="MyInput" />

但也许稍后我决定要在警报之后添加一个要触发的额外事件 - 也可以从 DOM 中的其他地方“onblur”。像下面

<script type="text/javascript">
  function attachOnBlurToSomething (id)
  {
    document.getElementById(id).onBlur = function () {
      alert("Another alert!");
    };
  }

  attachOnBlurToSomething ("MyInput");
</script>

以上当然只是公牛代码。但情况是一样的。在这种情况下会发生什么是我会得到“另一个警报!” 关于模糊。但我希望他们两个都跑。以什么顺序并不重要。怎么样?

谢谢,安东

4

1 回答 1

2

使用addEventListener(或attachEvent在必要时 - 在 IE < 9 中):

document.getElementById(id).addEventListener("blur", function() {
    alert("Another alert!");
}, false);

通过这样做,您可以摆脱任何内联事件处理程序(如您当前的onblur属性),这通常被认为是不好的做法。

这也意味着您可以为同一事件注册任意数量的事件处理程序。

于 2012-04-20T08:04:39.440 回答