1

我正在开发一个单页投资组合网站,该网站将从单独的 html 文件中提取项目。所以,目前我有这段代码将新的 URL(特别是#projectdiv)加载到当前的 div#port-content中。

我的 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-contentdiv。我试图创建一个相反的新功能,但没有奏效。

有任何想法吗?

4

2 回答 2

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

第 22 条是您可能会丢失处理程序分配,具体取决于您分配它们的方式

基本上在替换之前捕获 HTML。如上所述,一旦恢复它,您可能需要重新分配处理程序

于 2012-04-27T21:16:53.757 回答
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'));
}
于 2012-04-27T21:20:46.723 回答