2016-08-14 5 views
-4

私はこのコードをかなりの時間稼働させようとしていますが、運がないためです。Else関数が機能していません

function clicck() { 
if(f == 129) { 
    document.getElementById("displayy").style.display = "none"; 
    return f; 
} else { 
    document.getElementById("displayy").style.display = "inline"; 
} 
} 
var lkj = document.getElementById("displayy"); 
var f = lkj.offsetHeight; 

このコードでは、ディスプレイが表示されるように設定されています。「displayy」要素にはnoneが設定され、最初に機能がアクティブになったときにfの値は0に設定されます。ただし、f変数が0になると関数がアクティブになると、else関数はインライン表示を設定しません。このエラーの原因は何ですか?

+1

ここで何をしようとしているのかについてさらに多くの背景を述べてください。意味のある名前も役立ちます。 –

+0

この文は、 'var f = lkj.offsetHeight;'は 'f'が常に要素のオフセットの高さと同じ値を持つことを意味しないと考えてください。ペーストしたコードでは、fは初期値*しか持たず、決して変更されません。もしあなたが何かを持っていれば、 'f'を変更するコードを貼り付けてください。 – ppeterka

+0

正しい方法でコードを入手する方法がわからないのでそのまま貼り付けていきます。 \t \t

\t \t
  • Flowers by ocassion
  • \t \t
  • Birthday
  • \t \t
  • Aniversery
  • \t \t
  • Funeral
  • \t \t
  • Wedding
  • \t \t
  • Valentine
  • これは私の最初のjsスクリプトなので、何をしているのか分からない。 var fは関数が起動されるたびに変化し、if(f == 129){style.display = "none"}のため0に変化します。少なくとも私はそれが起こると思います。 @ppeterka –

    答えて

    1

    fの値を取得するコードは関数の外にあるため、一度しか設定されません。代わりにこれを試してみてください:

    function clicck() { 
        var lkj = document.getElementById("displayy"); 
        var f = lkj.offsetHeight; 
        if(f == 129) { 
         lkj.style.display = "none"; 
         return f; 
        } else { 
         lkj.style.display = "inline"; 
        } 
    } 
    
    1

    fの値は、スクリプトが最初に実行されるときに設定されます。あなたは今までそれを変更するコードを書いていません。したがって、はいつもとなります(または、常に129以外のものになります)。

    機能内で再測定する必要があります。

    関連する問題