2016-05-18 7 views
-1

ここに最初の質問があります。私は氷を砕くために少し緊張しています。私はちょうどCodeAcademy JSレッスンを終えたばかりです。(function(){})();構文の仕事?

私の#elementのいくつかを切り替えるために見つけた次のコードでは、class.propertyを初期状態から「block」に、「block」を初期状態に切り替えると思います。私が間違っているなら私を訂正してください。しかし、もし私がそうでなければ、誰かが私にこのことをどうやって説明することができますか?

class.property === 'value' ? '' : 'value'; 

Question Mark in JavaScript - 状態?値が真の場合:値偽の場合

この時点で私は理解できませんが、それは理にかなっています。最後に、このプロパティはvalue-if-trueとvalue-if-falseを#element(これはいくつかのonclick()でトリガされています)に渡しますが、今ではその関数がセクション位置をトリガするようにしたい場合はどうすればいいでしょうか:

()(関数(){})を使用して、なぜも理解していない私はこれを追加しようとしたが、それは失敗し、ここ

(function (style) { 
    style.display = style.display === 'fixed' ? 'absolute' : 'fixed'; 
})(document.getElementById(section).style); 

は、元のコードである:。

function toggledisplay(elementID) { 
    (function (style) { 
     style.display = style.display === 'block' ? '' : 'block'; 
    })(document.getElementById(elementID).style); 
}; 
+0

を参照するために変数を使用することができます。 'var style = document.getElementById(elementID).style;' – Bergi

+0

質問は何ですか? OPの 'js'は期待した結果を返しませんか? – guest271314

+0

あなたが使用しているものは、[条件付き(3値)演算子](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator)と呼ばれています –

答えて

1

fixedおよびabsoluteは、positionの値ではありません。display

function toggledisplay(elementID) { 
 
    var style = document.getElementById(elementID).style; 
 
    style.position = style.position === 'fixed' ? 'absolute' : 'fixed'; 
 
};
body { 
 
    position: relative; 
 
} 
 
#mydiv { 
 
    top: 50px; 
 
    left: 80px; 
 
    min-height: 100px; 
 
    width: 100px; 
 
    background-color: lightgrey; 
 
}
<button onclick="toggledisplay('mydiv')">Toggle</button> 
 
<div id="mydiv"></div>

注:生命維持機能を持っている本当の必要はありません、あなたは単に恐ろしいコードですstyleプロパティ

+0

最初の関数宣言の中で不要な関数宣言を削除してください。文字通り、そのような無名関数を呼び出す理由はなく、プログラミングの面では悪いことです。 –

+1

@AndrewBonsallはい、OPはそれを持っていた –

関連する問題