2016-11-29 94 views
0

我有一個問題,用ajax從外部網址加載模態的內容。所有的工作都很好,除了我的模式顯示兩次,第一次模態是空的,我看到ajax調用的加載器gif。之後,模態重新載入良好的信息。模式加載兩次

在我看來,我只有一個模態元素:

<div id="TheModal" class="modal fade text-center"> 
    <div class="modal-dialog"> 
     <div class="modal-content"> 
     </div> 
    </div> 
</div> 

而在一個外部JavaScript文件,我這樣做了明確的模態的以前的數據,並載入科研數據:

$(document).on('click', '.ls-modal', function(e) 
{ 
    e.preventDefault(); 
    $('.modal-content').html('test'); 
    $(this).removeData('bs.modal'); 
    $('#TheModal').find('.modal-content').load($(this).attr('href')); 
}); 

注意,在我的模式(我想刪除)的第一負載,在內容可以看我的「測試」一詞......

有人有一個想法?

謝謝,對不起我的英文不好!

回答

0

你必須使用.off()

試試這個代碼刪除單個處理器,

$(document).off('click', '.ls-modal'); 
$(document).on('click', '.ls-modal', function (e) 
{ 
    e.preventDefault(); 
    $('.modal-content').html('test'); 
    $('#TheModal .modal-content').html(''); 
    $('#TheModal').find('.modal-content').load($(this).attr('href')); 
}); 

參考:

+0

感謝您的回覆。我嘗試過,但它仍然沒有麥汁。當trus ajax調用正在加載時,我會看到另一個帶有「測試」內容的模式。 – Thomas

0

如果您正在加載包含加載模式的操作的自定義JavaScript文件,請確保您只加載該JavaScript文件一次。

我在使用ASP.Net MVC中的部分視圖時遇到了此問題。