2015-05-13 203 views
1

我正在使用以下內容將頁面中的某些內容加載到簡單的lightbox中。使用jQuery重新加載ajax內容

但是,如果頁面上有多個鏈接,並且點擊鏈接A載入內容A,但點擊鏈接B也會載入內容A。

如何確保爲每個鏈接加載正確的內容?

是否需要使用location.reload或其他來重新加載內容?

$('.ajax-page-content').click(function(){ 

    var $button = $(this); 
    var url = $button.attr('href'); 

    if ($('#addlee-lightbox-content').length > 0) { 

     $('#addlee-lightbox-content').show(); 
     $('body').addClass('lightbox-open'); 
    } else { 
     $.get(url, '', function (data) { 

      var $content = $(data).find('.col'); 
      var html_content = $content.html(); 

      var lightbox = 
      '<div id="lightboxcontent">' + 
       '<div class="lightbox-content animated fadeInDown">' + 
        '<a href="#" class="lightbox-close">&nbsp;</a>' + 
        html_content + 
       '</div>' + 
       '<div class="lightbox-bg">&nbsp;</div>' + 
      '</div>'; 

      $('body').append(lightbox).addClass('lightbox-open'); 

     }); 
    } 

    return false; 
}); 
+0

什麼是URL中鏈接?你能顯示你的HTML嗎? – Liam

+1

它取決於您的html結構 - 即放置元素和類的位置。 – Mackan

+0

這應該起作用。你的代碼找到鏈接('$ button = $(this)')並使用它的href,所以如果每個按鈕有不同的href,它應該加載不同的內容。你能證實這一點嗎? – GolezTrol

回答

0

由於腳本中的邏輯錯誤發生。
你寫類似:

如果容器存在,表明它
否則,創建容器,填充它,顯示它

因此,在你第二次點擊,第一個條件執行。

編輯:邏輯的草圖應該是這樣的:

點擊鏈接 - 獲取ajax的數據
填入容器問心無愧AJAX數據
顯示模式

的改變是使用點擊事件將多個容器添加(並填充)到您的頁面。每個容器應該保存一次點擊的ajax數據。
因此,像:
點擊LinkA的,獲取數據A,填充containerA,開放modalA
點擊LinkB上,取數據B,填充containerB,開放modalB
點擊LinkA的,開放的modalA

+0

我明白了,那麼我該如何解決? – user2753924