alert - onMouseLeave 触发 alert 两次,即使使用 stopPropagation

$('.pool').on('mouseleave', function (e) {                
            var el = $(this).find('.pool-row').find('input[type=submit]');

            if (el.length)
                alert('bla bla bla');

            e.stopImmediatePropagation();
            e.stopPropagation();
            return;
        });

即使使用 stopPropagation 或 preventDefault 和“return;”,alert 也会在 mouseleave 上触发两次。

[已解决] 第二个 alert 被触发,因为父元素上有另一个 mouseleave 事件,并且 alert() 触发了“mouseleave”。

回答1

我对您的脚本进行了一些快速修改,似乎它不会触发 alert 两次!

$('.pool').on('mouseleave', function (e) {
  e.stopPropagation()
  var el = $(this).find('input[type="submit"]')

  if (el.length)
      alert('bla bla bla')
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="pool">
  <p>This is a pool</p>
  
  <input type="submit">
</div>

相似文章

android - 注册按钮崩溃

我正在开发一个应用程序。在注册页面上,当我按下“注册”按钮时,它应该在字段为空时指示一条消息,而不是应用程序崩溃。有4个字段:电子邮件、全名、密码和确认密码。如果这些字段中的任何一个为空,则应弹出一条...