2012-04-27 98 views
1

我正在開發一個頁面組合網站,它將從單獨的html文件中提取項目。所以,目前我有這個代碼加載新的URL(特別是#project div)到當前div #port-content如何關閉ajax加載的頁面並返回舊內容?

我custom.js的部分如下:

var hash = window.location.hash.substr(1); 
var href = $('.ajax').each(function(){ 
var href = $(this).attr('href'); 
if(hash==href.substr(0,href.length-5)){ 
    var toLoad = hash+'.html #project'; 
    $('#port-content').load(toLoad) 
     }           
    }); 

    $('a.port-more').click(function(){       
     var toLoad = $(this).attr('href')+' #project'; 
     $('#port-content').hide('normal',loadContent); 
     window.location.hash = $(this).attr('href').substr(0,$(this).attr('href').length-5); 
     function loadContent() { 
      $('#port-content').load(toLoad,'',showNewContent()) 
     } 
     function showNewContent() { 
      $('#port-content').show('normal'); 
     } 
     return false; 
    }); 

如何關閉這個內容並帶回我原來#port-content股利。我試圖創建一個相反的新功能,但它不起作用。

任何想法?

回答

0
var HTMLstorage = ""; 
$("#something").on("click", function() 
{ 
var HTMLstorage = $("#someDivWithOldContent").html(); 
$("#someDivWithOldContent").html(yourNewHTML); 
} 

趕上22日在這取決於你如何分配他們

基本上捕捉到HTML則在更換之前,你可能會失去你的處理程序分配。一旦恢復,如上所述,您可能需要重新分配處理程序

0

使用.data()聽起來像是正確的選項。

function loadContent() { 
    if(!$('#port-content').data('default')) $("#port-content").data('default', $("#port-content").html()); 
    $('#port-content').load(toLoad,'',showNewContent()) 
} 
// and create another function to load the default 
function loadDefault() { 
    $('#port-content').html($("port-content").data('default')); 
} 
+0

嗨Starx,謝謝你的回答,但是這打破了功能。如何包括一個$('a.close-port')?click(function(){\t ?? – jwaldeck 2012-04-27 21:59:38

+0

@ user1361999,把這兩個函數放在click處理程序之外,如果你想要我可以創建一個小提琴檢查它 – Starx 2012-04-27 22:02:11

+0

不知道如何做到這一點與AJAX函數..此外,這個函數本身已經很多錯誤d.pr/i/x7bJ。可能必須聘請一個jQuery專家來看看這個..反正。 – jwaldeck 2012-04-27 22:27:00