この質問は以前から何度も回答されていますが、将来のユーザーのために、より完全で確実な回答を付け加えたいと思いました。主な答えは問題を解決しますが、物事を表示/非表示にするさまざまな方法のいくつかを知っている/理解する方が良いかもしれないと思います。
。
css()を使用して表示を変更する
これは、他の方法がいくつか見つかるまで私が使用していた方法です。
JavaScript:
$("#element_to_hide").css("display", "none"); // To hide
$("#element_to_hide").css("display", ""); // To unhide
長所:
短所:
- 「display」属性を他のものに使用する場合は、非表示にする前の値をハードコードする必要があります。したがって、「インライン」がある場合は、
$("#element_to_hid").css("display", "inline");それ以外の場合は、デフォルトで「ブロック」または強制的に適用されるものに戻ります。
- タイプミスに向いています。
例: https //jsfiddle.net/4chd6e5r/1/
。
addClass()/ removeClass()を使用して表示を変更する
この例を設定しているときに、実際にこの方法にいくつかの欠陥があり、非常に信頼性が低くなっています。
Css / Javascript:
.hidden {display:none}
$("#element_to_hide").addClass("hidden"); // To hide
$("#element_to_hide").removeClass("hidden"); // To unhide
長所:
- それは隠れる....時々。例のp1を参照してください。
- 再表示すると、以前の表示値の使用に戻ります。例のp1を参照してください。
- すべての非表示オブジェクトを取得したい場合は、実行するだけです
$(".hidden")。
短所:
- 表示値がHTMLに直接設定されている場合は非表示にしません。例のp2を参照してください。
- css()を使用してJavaScriptで表示が設定されている場合、非表示にしません。例のp3を参照してください。
- css属性を定義する必要があるため、コードが少し増えます。
例:https : //jsfiddle.net/476oha8t/8/
。
toggle()を使用して表示を変更する
JavaScript:
$("element_to_hide").toggle(); // To hide and to unhide
長所:
- 常に動作します。
- 切り替え前の状態を気にする必要がありません。これの明らかな使用法は、トグルボタンです。
- 短くてシンプル。
短所:
- 直接関係のないことを行うために、どの状態に切り替わっているかを知る必要がある場合は、コード(ifステートメント)を追加して、どの状態にあるかを調べる必要があります。
- 前の詐欺と同様に、非表示にするためにtoggle()を含む一連の命令を実行したいが、それがすでに非表示になっているかどうかわからない場合は、チェック(ifステートメント)を追加する必要があります。最初に確認し、すでに非表示になっている場合はスキップします。例のp1を参照してください。
- 前の2つの短所に関連して、具体的に非表示または具体的に表示しているものに対してtoggle()を使用すると、トグルする方法がわからないため、コードを読んでいる他のユーザーを混乱させる可能性があります。
例:https : //jsfiddle.net/cxcawkyk/1/
。
hide()/ show()を使用して表示を変更する
JavaScript:
$("#element_to_hide").hide(); // To hide
$("#element_to_hide").show(); // To show
長所:
- 常に動作します。
- 再表示すると、以前の表示値の使用に戻ります。
- あなたは常にあなたがスワップしている状態を知っているでしょう:
- 状態が重要な場合は、状態を変更する前に可視性をチェックするためにifステートメントを追加する必要はありません。
- 状態が重要である場合に、どの状態に切り替えるかについて、コードを読んでいる他の人を混乱させません。
- 直感的。
短所:
- トグルを模倣する場合は、最初に状態を確認してから、他の状態に切り替える必要があります。代わりにtoggle()を使用してください。例のp2を参照してください。
例:https : //jsfiddle.net/k0ukhmfL/
。
全体として、特にトグルである必要がない限り、hide()/ show()が最適です。この情報がお役に立てば幸いです。
return falseするのonclickですか?