【问题标题】:Is possible remove a event listener without removeEventListener?是否可以在没有 removeEventListener 的情况下删除事件侦听器?
【发布时间】:2016-06-02 09:07:31
【问题描述】:

这是我的问题。我有这个带有事件 onclick() 的 div:

<div style="float: left; margin-bottom: 10px; background-image: url('../bundles/web/img/370799.jpg'); background-repeat: no-repeat; margin-left: 5px; border-radius: 10px 10px 10px 10px; -moz-border-radius: 10px 10px 10px 10px; -webkit-border-radius: 10px 10px 10px 10px; padding-left: 10px; padding-top: 5px; padding-bottom: 5px; padding-right: -10px;">
    {% for card in cards %}
       <div id="{{ card.id }}" onclick="getImage({{ card.id }})" style="float:left;">
            <img class="img-responsive" style="width: 100px; height: 130px;"  src="{{'../bundles/web/img/cartas/' ~ card.image }}">
       </div>
    {% endfor %}
</div>

这个 javascript 用于删除事件监听器,但我阅读了 removeEventListener() 的文档,但说这个函数只适用于使用 addEventListener():

<script type="text/javascript">
   function getImage(e) {
      document.getElementById(1).appendChild(
          document.getElementById(e)
      );

      document.getElementById(e).removeEventListener("onclick", getImage);
   }
</script>

就是这样。感谢您的帮助:)

【问题讨论】:

    标签: javascript html dom


    【解决方案1】:

    您可以通过将相应的属性值设置为 null 来删除内联事件处理程序

    document.getElementById(e).onclick = null;
    

    【讨论】:

    • ... 或未定义或空字符串或任何东西 :-)
    • @devnull69 event handler 可以具有 null 值,或者设置为回调对象,或者设置为内部原始未编译处理程序。所以我认为null 更好,即使其他值也可以工作,因为它们在后台转换为 null。
    猜你喜欢
    • 2023-03-29
    • 2015-05-14
    • 2013-09-10
    • 2015-09-07
    • 1970-01-01
    • 2021-08-20
    • 2017-03-16
    相关资源
    最近更新 更多