如何添加多个函数以在不同位置的同一事件上运行

时间:2012-04-20 08:01:02

标签: javascript events

所以,这是我的问题。 我希望能够从文档中的不同位置添加“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>

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

谢谢, 安东

1 个答案:

答案 0 :(得分:2)

在IE&lt; 9中使用addEventListener(或必要时attachEvent}:

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

通过这种方式,您可以摆脱任何内联事件处理程序(如您当前的onblur属性),这通常被视为不良做法。

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