ブートストラップモーダルウィンドウを開閉するページがあります。モーダルの内容はHTMLのようにAJAXに由来します。JavaScript関数がAjaxと重複しています
<button id="myBtn">
ともAJAXから来て、ボタンのクリックイベントに結合するモーダル、内のスクリプト::私は開いて閉じた場合
<script>
$("#myBtn").click(function() {
// do something
});
</script>
のは、私はモーダルでボタンがあるとしましょうモーダルウィンドウを複数回実行すると、上記の関数が繰り返しバインドされ、// do something
の部分が複数回実行されます。これは明らかに起こりたくありません。
これを行う正しい方法は何ですか?
EDIT:(は要求に応じて詳細を追加)
それが示されていますとき、データが、モーダルにロードされます。
$('#myModal').on('shown.bs.modal', function (event) {
$('#myModal').html('Loading...');
$.ajax({
type: "POST",
dataType: "html",
url: "ajaxHandler.php",
data: (myData),
success: function(data){
$('#myModal').html(data);
},
error: function(jqXHR, textStatus, errorThrown) {
// handle error
$('#myModal').modal.modal('hide');
}
});
});
モーダルにロードされますHTMLを、button
が含まれており、 click()
結合。
モーダルを非表示にしてから再び表示すると、古いコンテンツが何度も上書きされます。 jQueryを使って
は何を代わりに起こることをしたいですか?あなたの目標を説明していないので、明らかではありません。 [mcve]を作成してください。 – 4castle
私は一度だけ実行したいです。 – Mkoch
AJAX経由でブートストラップモーダルを開くと、古いDOMが置き換えられますか?あなたはどうやってロードしていますか?それはおそらく私たちが見る必要があるコードです。 – 4castle