我有一個Bootstrap模式窗口打開/關閉的頁面。模塊的內容來自AJAX,就像HTML一樣。比方說,我在模態按鈕:使用Ajax複製JavaScript函數
<button id="myBtn">
和模態,這也來自AJAX和綁定到按鈕的單擊事件的腳本:如果我打開和關閉
<script>
$("#myBtn").click(function() {
// do something
});
</script>
模式窗口多次,上面的函數會重複綁定,並且會執行多次 - 這顯然不希望發生。
什麼是這樣做的正確方法?
編輯:(添加更多細節的請求)
的數據被加載到模態,當它示出:
$('#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()
綁定。
當模態被隱藏然後再次顯示時,舊內容會一遍又一遍被覆蓋。
你想要發生什麼呢?這並不明顯,因爲你沒有解釋你的目標。你可以創建一個[mcve]嗎? – 4castle
我希望它只運行一次。 – Mkoch
當通過AJAX打開Bootstrap模式時,舊的DOM是否被替換?或者你如何加載它?這可能是我們需要看到的代碼。 – 4castle