javascript - 如何停止在列表中传播 mouseout 事件?

标签 javascript dom-events html-lists mouseout stoppropagation

当我将 mouseout 事件附加到 UL 元素时,尽管我添加了 stopPropagation(),但事件确实会传播到 LI 子元素?我的代码有什么问题?

http://jsfiddle.net/ubugnu/D7jwq/270/

HTML代码:

<ul id="myul">
    <li>Outer
        <ul>
            <li>Inner
                <ul>
                    <li>Inner Inner</li>
                </ul>
            </li>
        </ul>
    </li>
</ul>
<span id="count">0</span>

JS代码:

document.getElementById('myul').addEventListener('mouseout', function(e){
    e.stopPropagation();
    document.getElementById('count').innerHTML = parseInt(document.getElementById('count').innerHTML) + 1;
}, false);

CSS 代码:

li { padding: 20px; border: solid 1px #ddd; }

最佳答案

在这种情况下,使用“mouseleave”而不是“mouseout”。引用文档:

The mouseleave event is fired when a pointing device (usually a mouse) is moved off the element that has the listener attached.

The mouseout event is fired when a pointing device (usually a mouse) is moved off the element that has the listener attached or off one of its children.

请注意,mouseleave 支持已添加到 Blink (Chrome/Opera 15) 相当 recently ,这就是为什么它在 Chrome 29 中不可用(但在开发版 Chrome 中已经存在)。

关于javascript - 如何停止在列表中传播 mouseout 事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18538783/

相关文章:

javascript - 在 JavaScript 中创建可变宽度位掩码(0-32 位)

javascript - 如何在IE中为动态创建的div设置onmousedown事件?

javascript - onclick 函数在没有点击 JavaScript 的情况下执行

html - 居中 ul 的自定义元素符号

javascript - 动态调整水平 <li> 元素的大小以保持在一行中

javascript - 我的 div 显示/隐藏代码在静态 HTML 页面上工作正常,但在 Wordpress 3.5.1 页面上不起作用

javascript - 如何获取mp3文件的大小和持续时间?

html - 我应该在我的 <nav> 中使用 <ul> 和 <li> 吗?

javascript - JQuery 查找给定 div 中的最后一个子元素

javascript - 我的 JavaScript 代码在本地无法运行,但在 jsfiddle 上运行良好,为什么?