5

私はJSを初めて使用し、スクリプトが恐らくひどいことを理解していますが、Firefoxだけでなく、SafariとChromeでもすべて正常に機能します。

特に、2つの関数を呼び出して、カスタム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の経験はほとんどありません。まだ。

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 に答える