【问题标题】:Javascript: onchange or addEventListener?Javascript:onchange 还是 addEventListener?
【发布时间】:2013-02-14 20:01:31
【问题描述】:

我对 Javascript 完全陌生。但是我之前对 Activescript 有所了解。我被教导使用 addEventListener 来处理事件。

但是当我谈到 JavaScript 时,虽然 addEventListener 是一个选项,但使用 addEventListener 似乎是一种次要的方式。相反,人们使用 onChange()。

除了句法之外,是否有任何行为差异?

我还被教导要始终使用 removeEventListener。似乎不是很有必要。如果我使用onChange,是否不需要编写removeEventListener?

谢谢

【问题讨论】:

标签: javascript onchange addeventlistener


【解决方案1】:

两个主要区别:

  • addEventListener 不兼容旧版 IE 浏览器
  • onchange 不会添加事件监听器:它会替换现有的监听器

【讨论】:

    【解决方案2】:

    使用addEventListener,您可以附加多个事件监听器。 onchange 属性并非如此。

    【讨论】:

      【解决方案3】:

      我个人认为 addEventListener 要好很多。您可以在 HTML5 中使用此示例

      document.addEventListener("input", function(){
        target = window.event.target.value;
        window.event.target.nextSibling.nextSibling.value = target*2;
      });
      <input name="1" value="25">
      <input name="2" value="50" readonly>
      <p>Hello World</p>

      【讨论】:

      • 为什么它更好?我不确定这是否是您的观点的一部分,但是像这样依赖nextSibling 两次似乎非常脆弱,并且在对标记进行小的更改时很容易中断。我更喜欢添加一个类或 id 并使用选择器,而不是假设输出正好是 2 个兄弟姐妹。
      【解决方案4】:

      你们说的都是真的,但是当“通过代码”进行更改时,似乎只有 onchange 才能捕捉到更改。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-01
        • 1970-01-01
        • 1970-01-01
        • 2016-04-18
        • 2015-04-20
        • 2017-01-15
        • 1970-01-01
        • 2011-08-15
        相关资源
        最近更新 更多