0

我一生都无法弄清楚为什么这个 if 语句不起作用。

retrieveInfo 函数传递一个event,code和 ,target 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");
    }
}
4

1 回答 1

4

仅当 HTML 标记包含“样式”属性,或者您的代码在其他地方对其进行了修改时,检查“样式”对象才有效。如果有 CSS 使对象的“可见性”属性被“隐藏”,您将无法通过该方法判断。

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

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

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

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

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

那么您的代码应该可以正常工作。

于 2013-02-20T20:14:40.303 回答