2013-06-20 58 views
2

我正在使用twitter boostrap,我想從其他頁面獲取html並將其加載到當前頁面的模式中。所以我創建了一個JavaScript函數來處理這個對我來說。Twitter Bootstrap Modal遠程功能無法正常工作

在我「的index.php」我有這樣的:

<button onclick="popIt('create_event.php', 'Create Event');" data-toggle="tooltip" data-placement="top" data-original-title="Edit" class="btn ttp"><i class="icon-pencil"></i></button> 
<button onclick="popIt('tester.php', 'Test Head');" data-toggle="tooltip" data-placement="top" data-original-title="Delete" class="btn btn-danger ttp"><i class="icon-remove icon-white"></i></button> 

的JavaScript函數就是像這樣:

<script> 

function popIt(url, header) { 

     $('#myModal').modal({ 
      remote: url 
     }); 
     $('#myModalLabel').html(header); 
    } 

這將加載相應的頁面,當我點擊按鈕,但是當我關閉模式並點擊其他按鈕,它仍然加載前一頁。

請問我做錯了什麼? 謝謝

回答

-1

嘗試$('#myModal').empty()popIt函數的第一行。它可能是延遲的原因在從服務器獲得響應

如果不是你可以嘗試融合的GET請求和模態例如,

$.get(url,function(data){ 
    $('#myModal').html(data) 
} 
+0

我想這和它只是完全移除模式,累了'$(「模態體」)。空()'也並刪除第二個點擊後的內容,從來沒有取代它。我在我的電腦上運行(本地主機) –

+0

我建議只用第二個按鈕進行調試,看看內容是否出現 –

+0

是的內容出現。當我說第二個按鈕時,我說的是相對的。 –

1

銷燬對象它完成躲在後

$('body').on('hidden', '.modal', function() { 
    $(this).removeData('modal'); 
}); 
0

我在Bootstrap的模態小部件中遇到了很多問題。這兩個主要問題是IE中的緩存和模式函數,在使用遠程屬性觸發事件之前,不會等到ajax調用完成。我通過創建一個包裝來創建模態對話框來解決這些問題。要修復緩存問題,請執行$ .get並向URL添加timestamp參數,並在初始化模式窗口小部件之前將響應設置爲內容屬性。請參閱下面的代碼。希望這可以幫助!

var $queue = $({}); 
if (settings.remote) { 
    $queue.queue('modal_open', function(next) { 
    $.when($.get(settings.remote + '&timestamp=' + new Date().getTime())).done(function(content) { 
     settings.content = content; 
     settings.remote = undefined; 
     next(); 
    }); 
    }); 
} 

$queue.queue('modal_open', function(next) { 
    ... 
    $modal.modal(settings); 
    next(); 
} 

$queue.dequeue('modal_open'); 
return $modal;