2017-01-13 3 views
0

ボタンを使用してブートストラップ・モーダルを起動し、jQueryを使用してボタン・クラスとテキストを変更します。ボタンクラスが変更されたら、別のブートストラップモーダルを起動したい。ここでAjaxの変更ボタンからブートストラップ・モーダルをロードする

は私のコードは私の問題は、その同じモーダルを起動さ

$('.btn myBtn1').click(function() { 
    var id = $(this).closest('tr').data('id'); 
$('#myModal1').data('id', id).modal('show'); 
$('. btn').addClass(' myBtn2'); 
$('. btn').removeClass(' myBtn1'); 

}); 
//second modal code 
$('.btn myBtn2').click(function() { 
    var id = $(this).closest('tr').data('id'); 
$('#myModal2').data('id', id).modal('show'); 
$('. btn').addClass(' myBtn1'); 
$('. btn'). removeClass(' myBtn2'); 

}); 

です。モーダル1をロードせず、モーダル2をロードしません。これを解決するにはどうすればよいですか?あなたの時間を感謝します。

+0

この '$( '.btn myBtn2').Click(...)'は、ボタンがそのクラスを持つ前に*セレクタが何もマッチしないときに呼び出されます。 –

答えて

1

の変更次のコード行:

//second modal code 
$('.btn myBtn2').click(function() { 

//second modal code 
$(document).on('click', '.btn myBtn2', function(){ 

の理由:あなたが動的にセレクタを変更していますあなたのイベントを作るよりもそれを処理できるリスナーもあります。 $('selector').click();は、スタティックセレクタでのみ機能します。

1

クライアントイベントが添付されないようにボタンクラスを動的に変更しました。この場合、子供の代わりに親とクリックイベントが関連付けられています。詳細情報In jQuery, how to attach events to dynamic html elements?

使用この:

$('body').on('click', '.btn myBtn2', function() { 
関連する問題