显示/隐藏&鼠标悬停Javascript

Show/Hide & Mouseover Javascript

本文关键字:鼠标 悬停 Javascript amp 隐藏 显示      更新时间:2023-09-26

我一直在研究Show/Hide javascript,并通过鼠标悬停效果进一步推动它,以实现我想要的效果。我设置了一个Fiddle以便更好地访问。然而,我现在想通过最多4个不同的文本区域来推动它("单击此处获取更多信息"),并且每个文本区域都会有更多的悬停文本,因为我试图在HTML代码中显示这些文本。我使用和编辑的javascript现在有对应于"0"answers"1"的"ID",这对我当前的HTML代码不起作用,因为它有一些时髦的名字,比如"uu3308-10"(用Adobe Muse制作)现在,我想知道我必须在Javascript中更改哪些变量才能使其正常运行,是否有方法编译此代码,使其与至少11个其他"单击此处获取更多信息"点一起工作?

注意:当前的javascript使showMoreText2显示在两个showMoreText区域下(希望一次只显示一个悬停文本)。

单击此处获取FIDDLE-->http://jsfiddle.net/TPLOR/vy6nS/

谢谢,我希望这足够有用

有点粗鲁:(请参阅http://jsfiddle.net/vy6nS/30/)

window.onload = function() {
    var elems1 = document.getElementsByClassName("expander");
    for (i = 0; i < elems1.length; i++) {
        elems2 = elems1[i].childNodes;
        for (x = 0; x < elems2.length; x++) {
            if (elems2[x].className == "toggle") elems2[x].onclick = function() {
                showMore(0, this);
            };
            else if (elems2[x].className == "showMoreText") {
                elems2[x].onmouseover = function() {
                    showChilds("block", this);
                };
                elems2[x].onmouseout = function() {
                    showChilds("none", this);
                };
            }
        }
    }
};
function get_nextsibling(n) {
    x = n.nextSibling;
    while (x.nodeType != 1) {
        x = x.nextSibling;
    }
    return x;
}
function showChilds(disp, elem) {
    get_nextsibling(elem).style.display = disp;
}
function showMore(disp, elem) {
    var children = elem.parentNode.childNodes;
    for (i = 0; i < children.length; i++) {
        if (disp == 0 && children[i].className == "showMoreText") {
            children[i].style.display = children[i].style.display == "none" ? "block" : "none";
        }
    }
}​