javascript if if语句检查div是否可见不起作用

时间:2013-02-20 20:11:53

标签: javascript

我不能为我的生活弄清楚为什么这个if语句不起作用。

retrieveInfo函数传递eventcodetarget div,如下所示:

onmouseover="return retreiveInfo(event, 'M003', 'target')"

我必须尽可能多地使用学校作业提供的代码。

function retreiveInfo(e, movieCode, div) {
    if(e.pageX) {
        this.x = e.pageX;
    } else {
        this.x = e.clientX;
    }
    if(e.pageY) {
        this.y = e.pageY;
    } else {
        this.y = e.clientY;
    }

    div = document.getElementById(div);

    if(div.style.visibility == "visible") {
        console.log("More Good");
    }
    else if(div.style.visibility == "hidden"){
        console.log("Hidden");
    }
}

1 个答案:

答案 0 :(得分:4)

检查“样式”对象仅在HTML标记包含“样式”属性或其代码在其他位置修改时才有效。如果有CSS使对象的“可见性”属性被“隐藏”,那么你将无法通过该方法来判断。

还有其他方法可以使对象不可见:

  • display: none
  • position: absolute; left: -10000px;

等。元素可以位于另一个隐藏的元素内。因此,确定DOM中的特定元素是否可见并不总是一项简单的任务: - )

现在,如果其他地方的某些代码执行类似的操作:

document.getElementById(whatever).style.visibility = "hidden";

然后你的代码应该正常工作。