onMouseLeave触发警报两次,即使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;&;也会在mouseleave上触发两次警报。

(解决)第二个警报被触发,因为在父元素上有另一个mouseleave事件,并且alert()触发了'mouseleave'。

我对你的脚本做了一些快速修改,似乎没有触发两次警报!

$('.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>

相关内容

最新更新