【问题标题】:jquery Event keeps executing, I want it to run only oncejquery 事件不断执行,我希望它只运行一次
【发布时间】:2017-07-17 03:55:25
【问题描述】:

请大家帮忙,我只需要执行一次此代码,每次我将鼠标悬停到浏览器窗口时它都会重复。

<script>
  $(function () {
    function myEvent(obj, evt, fn) {
      {
        obj.addEventListener(evt, fn, false);
      }
    }

    myEvent(document, "mouseleave", function (a) {
      var from = a.relatedTarget;
      if (a.pageY < $(window).scrollTop()) {
        $("#bounceModal").addClass("ffb-show");
      }
    });
  });
</script>

【问题讨论】:

  • jQuery.one ?顺便说一句,你根本没有使用 jquery "events"
  • 如果你不知道,Duke、Javascript 和 jQuery 是不一样的。 Javascript 是语言,jQuery 是大多数人在使用 Javascript 时使用的流行库,因为它使事情变得更容易。
  • 不是你要问的,但是如果你也在使用 jQuery,你到底为什么要定义myEvent()?你可以直接说$(document).on("mouseleave", function() {...})
  • @SankarRaj 你为什么要这样缩进整个代码?对我来说似乎毫无意义。我也不知道添加结束 &lt;/script&gt; 标记是否是个好主意,因为它可能向我们表明 OP 没有向我们显示所有代码。
  • @Clonkex - 问题的原始版本包括结束脚本标记,但它没有正确缩进,因此没有显示。但是,是的,最好正确地修复所有缩进,而不是将所有内容都向右移动。

标签: javascript jquery addeventlistener popupwindow


【解决方案1】:

{once:true} 传递给.addEventListener() 的第三个参数

  function myEvent(obj, evt, fn) {
    obj.addEventListener(evt, fn, {once:true});
  }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-12-19
  • 2022-01-07
  • 1970-01-01
  • 2020-07-02
  • 1970-01-01
  • 2012-06-09
相关资源
最近更新 更多