5

我对 JS 很陌生,并且知道我的脚本可能很糟糕,但是在 Safari 和 Chrome 中一切正常,只是在 Firefox 中不行。

除其他外,我调用了两个函数来隐藏和显示自定义 Quicktime 电影控制器,方法是在其顶部放置一个“蒙版”(我知道切换将是一个更优雅的解决方案,但我无法得到这样的功能以我想要的方式工作)。无论如何,这就是 Javascript 的样子:

function revealControls(){
      document.getElementById("controlsCover");
      controlsCover.style.display ="none"
}

function hideControls(){
       document.getElementById("controlsCover");
       controlsCover.style.display ="block"
}

我使用应用于各种 div 的不同鼠标事件来调用这些函数,例如:

<div id = "controls" onmouseout = "hideControls()">

火狐告诉我

 "Error: controlsCover is not defined", 

而且我不知道如何将元素定义为null。

任何帮助,将不胜感激。我确信这很简单——但我几乎没有使用 Javascript 的经验。然而。

4

4 回答 4

6

您需要先创建controlsCover变量以引用它。

当您第一次使用document.getElementById("controlsCover")时,这将返回一个 HTML 元素,您将其传递给要使用的变量。

如果您取消注释 console.log - 您将看到变量内部的内容。

function revealControls()       
{
    var controlsCover = document.getElementById("controlsCover");
    /* console.log(controlsCover) */
    controlsCover.style.display ="none"
}

function hideControls() 
{
    var controlsCover = document.getElementById("controlsCover");
    controlsCover.style.display ="block"
}
于 2012-06-22T12:21:38.603 回答
2

您需要将document.getElementById返回值分配给controlsCover变量:

var controlsCover = document.getElementById("controlsCover");

固定将是:

function revealControls() {
    var controlsCover = document.getElementById("controlsCover");
    controlsCover.style.display ="none"
}

function hideControls() {
    var controlsCover = document.getElementById("controlsCover");
    controlsCover.style.display ="block"
}
于 2012-06-22T12:21:42.760 回答
0

尝试这个:

var ele =document.getElementById("controlsCover");
ele.style.display = "none";
于 2012-06-22T12:23:16.440 回答
0

尝试这个:

function revealControls()       
{
  var oControlsCover = document.getElementById("controlsCover");

  if (oControlsCover) {
    oControlsCover.style.display ="none";
  }
}

function hideControls() 
{
  var oControlsCover = document.getElementById("controlsCover");

  if (oControlsCover) {
    oControlsCover.style.display ="block";
  }
}
于 2012-06-22T12:29:01.153 回答