web-dev-qa-db-ja.com

非表示にする方法Bootstrap=新しいモーダルを開くときに以前のモーダル?

私はそのような問題を抱えています:Bootstrap= modalsを使用して行われる認証があります。

ユーザーがモーダルサインインを開くと、モーダル(またはその他)にサインアップできます。だから、私は前のものを閉じる必要があります。

今、私は次のようにそれらを閉じています:

$(document).ready(function(){
  $("a").click(function() {
  $("#login").hide();
  $("#sign_up").hide();
 })  
});

しかし、私がこれをしているとき-ページを更新するまで、サインインモーダル(サインインからサインアップをクリックした後)を再開できません。

別のリンクを呼び出したときに、リンクをクリックしているモーダルを確認して閉じる方法を誰かが提案できますか?以前のモーダルを閉じる普遍的な方法はありますか?

24
MID

非表示Bootstrapモーダルを使用して:

_$('#modal').modal('hide');
_

$().hide()と言うと、一致した要素は非表示になりますが、モーダル関連のコードに関する限り、まだそこにあります。 モーダルドキュメント のメソッドセクションを参照してください。

61
willglynn

両方のモーダルを切り替えます

$('#modalOne').modal('toggle');
$('#modalTwo').modal('toggle');
2
Vikash Kumar

私ができることは最高です

$(this).closest('.modal').modal('toggle');

これにより、イベントをトリガーしたDOMオブジェクトを保持するモーダルが取得されます(ボタンをクリックしていると推測します)。最も近い親「.modal」を取得して切り替えます。クリックしたモーダル内にあるため、明らかに機能します。

ただし、これを行うことができます。

$(".modal:visible").modal('toggle');

これは表示されているモーダルを取得し(一度に1つしか開くことができないため)、「トグル」をトリガーします。これは「:visible」なしでは機能しません。

1
TolMera