我是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()">
Firefox正在告诉我
"Error: controlsCover is not defined",
我不知道如何将元素定义为null。
任何帮助将不胜感激。我确信这很简单 - 但我几乎没有使用Javascript的经验。爱好。
答案 0 :(得分: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"
}
答案 1 :(得分: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"
}
答案 2 :(得分:0)
试试这个:
var ele =document.getElementById("controlsCover");
ele.style.display = "none";
答案 3 :(得分: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";
}
}