javascript - 使用 Javascript 的正确悬停效果

标签 javascript html css hover dom-events

我需要一些 JavaScript 方面的帮助。我正在创建一个小的显示菜单,它确实具有悬停效果。请检查 Live Fiddle。现在我希望当我将鼠标悬停在 book 上时,不应出现这种悬停效果。但是当我悬停其他元素时,悬停效果就会发生。我的意思是,如果我将鼠标悬停在书店 上,将不会出现描述框,但是当我将鼠标悬停在书名/作者/年份/价格 上时,应该显示描述标签。所有这些都需要使用 JavaScript 而不是 jQuery 来完成。

Live Fiddle

function traverse(node) {
    var ul = document.createElement('ul');
    if (typeof node !== 'undefined') {
        var li = document.createElement('li');
        var desc = document.createTextNode(node.name);
        var img = document.createElement("img");
        img.src = node.src;
        li.appendChild(img)
        li.appendChild(desc);
        if (node.children.length == 0) {
            li.className = "leaf";
        }
        li.onclick = clickExpand;
        li.onmouseover = showDescrip;
        li.onmouseout = hideDescrip;
        li.onmousemove = moveDescrip;

        if (typeof node.children !== 'undefined') {
            node.children.forEach(function (child) {
                li.appendChild(traverse(child));
            });
        }
        ul.appendChild(li);
    }
    return ul;
}

最佳答案

你可以把你的 mouseover 放在你的 if 中:

    if (node.children.length == 0) {
        li.className = "leaf";
        li.onmouseover = showDescrip;
        li.onmouseout = hideDescrip;
        li.onmousemove = moveDescrip;            
    }

FIDDLE

关于javascript - 使用 Javascript 的正确悬停效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22173079/

相关文章:

html - 伪一线需要双冒号语法吗?

php - 将 css 的 url 站点更改为一致的

php - 使用文本框和编辑按钮更新 MySQL 表(使用 HTML 和 PHP)

javascript - 如何在轮播表中创建分页?

javascript - jQuery - 如何检测剪贴板内容是否已更改?

css - IE7 : element showing even with display: none

css - @font-face渲染

Javascript - 在创建时对数组元素执行操作

javascript - 如何使用 ERB 和 JQuery 修改元素样式属性并使用 % 符号值?

JavaScript - 子继承破坏了父继承