ログインフォームとサインアップフォームを含む2つのスライドを含むカルーセルを含むモーダルがあります。
私は次のことを達成したい:
- ユーザーがサイト ヘッダーの [ログイン] リンクをクリックすると、モーダルが開き、カルーセルが [ログイン] スライドにスライドします (インデックスは 0 です)。
- ユーザーがサイト ヘッダーの [サインアップ] リンクをクリックすると、モーダルが開き、カルーセルが [サインアップ] スライドにスライドします (インデックス 1 にあります)。
- スライド遷移が発生するたびに、モーダル タイトル テキストが変更されます (カルーセルの「スライド」イベントにバインドされます)。
しかし、私はこれを機能させることができないようです。問題は、これらすべてのイベントがどのように発生するかの順序にあると思います。
基本的なコードは次のとおりです。
// Initialize modal
$('.modal').modal()
// Initialize carousel
$('.carousel').carousel()
$('.carousel').carousel('pause') // Pause the carousel so it doesn't auto-rotate
$('.signuplink').on('click', function() {
$('.carousel').carousel(1).on('slid', function() {
$('.modal .modal-title').html('Sign Up');
$('.modal').modal('show');
});
});
しかし、うまくいきません。モーダルが事前に表示されていない場合、「スライド」イベントは発生しません。そこで、モーダルを表示してからカルーセルをスライドさせ、モーダルの「表示」イベントにバインドしようとしましたが、次のスライドにスライドしている間、「スライド」イベントは発生しません。さらに奇妙なのは、すべてのイベント処理が台無しになっているように、モーダルの閉じるボタンが機能しなくなったことです...
編集:モーダルが初めて表示されているときに、「表示」イベントが発生しないようです。モーダルを非表示にしたときにのみ発生します。もう一度開くと、「表示」が正しい瞬間に発射されたようです。