[解決済み] Twitter Bootstrapのアラートメッセージを閉じたり、再び開いたりする方法
質問
アラートメッセージで困っています。正常に表示され、ユーザが
x
(を押すと閉じることができるのですが、再度表示させようとすると(例えばボタンイベントをクリックすると)表示されません。(さらに、このアラートメッセージをコンソールに出力すると、イコール
[]
.) 私のコードはここにあります。
<div class="alert" style="display: none">
<a class="close" data-dismiss="alert">×</a>
<strong>Warning!</strong> Best check yo self, you're not looking too good.
</div>
そしてイベント。
$(".alert").show();
P.S! 私は、いくつかのイベントが発生した後(例えば、ボタンがクリックされた)だけアラートメッセージを表示する必要があります。または私は間違ってやっている何ですか?
どのように解決するには?
Data-dismissは完全に要素を削除します。代わりにjQueryの.hide()メソッドを使用してください。
fix-it-quickメソッドです。
インラインjavascriptを使って、このようにonclickの要素を非表示にします。
<div class="alert" style="display: none">
<a class="close" onclick="$('.alert').hide()">×</a>
<strong>Warning!</strong> Best check yo self, you're not looking too good.
</div>
<a href="#" onclick="$('alert').show()">show</a>
しかし、これは怠け者の場合にのみ使用されるべきです (保守可能なアプリを作りたいのであれば、良いことではありません)。
ドゥ・イット・ライト(Do-it-right)方式。
要素を非表示にするための新しいデータ属性を作成します。
ジャバスクリプトを使用します。
$(function(){
$("[data-hide]").on("click", function(){
$("." + $(this).attr("data-hide")).hide()
// -or-, see below
// $(this).closest("." + $(this).attr("data-hide")).hide()
})
})
で、マークアップでdata-dismissをdata-hideに変更します。 jsfiddleでの例 .
$("." + $(this).attr("data-hide")).hide()
これは、data-hideで指定されたクラスを持つすべての要素、すなわち、以下の要素を隠します。
data-hide="alert"
はアラートクラスを持つ全ての要素を隠します。
Xeon06 は別の解決策を提供しました。
$(this).closest("." + $(this).attr("data-hide")).hide()
これは最も近い親要素だけを隠します。これは、各アラートに一意のクラスを与えたくない場合に非常に便利です。ただし、アラート内に閉じるボタンを配置する必要があることに注意してください。
からの .closest の定義 jquery doc :
セットの各要素について、要素自体をテストし、DOMツリーでその祖先をたどることで、セレクタにマッチする最初の要素を取得します。
関連
-
[解決済み] URLを新しいタブで開く(新しいウィンドウではない)
-
[解決済み] Twitter Bootstrapのメニューをクリックではなく、ホバーでドロップダウンさせる方法
-
[解決済み] Twitter Bootstrap 3を使用して列を中央に配置する
-
[解決済み] BootstrapのモーダルウィンドウをjQueryで開くには?
-
[解決済み] Twitter Bootstrapでナビバーの色を変更する
-
[解決済み] Twitter Bootstrap Form File Element Upload Button(ファイルアップロードボタン
-
[解決済み] Twitter Bootstrapのモーダルクローズに関数をバインドする
-
[解決済み] Twitter Bootstrapのモーダルウィンドウを閉じないようにする
-
[解決済み] Bootstrapのモーダルを閉じる
-
[解決済み] Bootstrap Alert Auto Close(ブートストラップ・アラート・オートクローズ
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] チェックボックスが選択されているかどうかを確認するjQuery
-
[解決済み] Node.jsでbase64エンコードされた画像をAmazon S3へアップロードする
-
[解決済み] javascriptで2つの数値を連結する方法は?
-
[解決済み] なぜ "use strict "はパフォーマンスを10倍向上させるのか?
-
[解決済み] bootstrap のポップオーバーがすべての要素の上に表示されない
-
[解決済み] javascript の関数から `undefined` と `null` のどちらを返すのが良いのでしょうか?
-
[解決済み] WebStormで未解決の変数が大量にある場合の警告に対処する方法は?
-
[解決済み] Reactコンポーネントでthis.setStateを複数回使用するとどうなりますか?
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] JavaScriptの文字列プリミティブとStringオブジェクトの違いは何ですか?