ボタンを使用してブートストラップモーダルを起動し、jQueryを介してボタンクラスとテキストを変更しています。ボタンクラスが変更されたら、別のブートストラップモーダルを起動したいと思います。
ここに私のコードです
$(".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をロードすることはありません。これを修正するにはどうすればよいですか?あなたの時間を感謝します。
回答:
回答№1は1次のコード行を変更します。
//second modal code
$(".btn myBtn2").click(function () {
に
//second modal code
$(document).on("click", ".btn myBtn2", function(){
理由: セレクターを動的に変更する場合は、イベントリスナーもそれを処理できるようにする必要があります。
$("selector").click();
静的セレクターでのみ機能します。
回答№2の場合は1
ボタンクラスを動的に変更したため、クライアントイベントはアタッチされません。この場合、子ではなく親に添付されたクリックイベントがあります。より詳しい情報 jQueryでは、どのように動的なHTML要素にイベントを添付するのですか?
これを使って:
$("body").on("click", ".btn myBtn2", function () {