2014-10-30 182 views
0

以下是我用來動態加載內容的代碼。我面臨的問題如下:Ajax內容加載問題

下面的代碼現在已禁用CTRL+CLICK簡碼在新選項卡中打開網址。新的CSS和JS如果在前一頁中不存在,則不適用。請讓我知道如何解決上述問題?

$(document.body).on("click", "nav a", function() { 
     topen = $(this).attr("href"); 
     window.location.hash = $(this).attr("href"); 
     $("#main_wrapper").load(topen +" #main_wrapper > *"); 
     return false; 
}); 
+0

如果您正在動態更改頁面,您爲什麼要允許用戶「CTRL +點擊」打開一個新選項卡?在這種情況下,您完全覆蓋了鏈接的默認行爲。 – HJ05 2014-10-30 22:57:35

+0

@ HJ05因爲我在網站的主菜單上應用它,並且一些用戶想要在標籤頁中打開新頁面。所以如果用戶點擊'CTRL + CLICK',怎麼做呢? – user3027531 2014-10-30 23:00:28

回答

1

你想要做的是修改處理程序以使用防止默認值而不是返回false。然後,您可以檢查用戶如何激活按鈕並可以採取相應措施。

$(document).ready(function() { 
    $('a').on('click', function(e) { 
     if(e.ctrlKey || e.button === 1) { 
      return; 
     } 
     e.preventDefault(); 
     // Do the stuff when the anchor is just clicked. 
    }); 
}); 

您可以檢查Fiddle

在JS的條款和CSS不適用,我們需要這個工作的例子是更多的幫助。

+0

感謝js我寫了可以動態加載或卸載CSS和Javascript的代碼。我想它是唯一正確的方法。我之前想過讓我們只加載新的css和js,這些新的css和js不會出現在請求打開新頁面的當前頁面中。 – user3027531 2014-10-30 23:18:45