2011-08-08 24 views
2

恢復DOM的一部分。在一個jQuery回調,我想存儲DOM的狀態和恢復時,退出鍵,按下此狀態:jQuery的:保存和退出鍵

$(document).ready(function() { 
    // add callbacks 
    // TODO : *** store dom *** 

    $(".editable").click(function() { 
     // add other callbacks 

     $("#add").keyup(function(e){ 
      if (e.keyCode == 27) { // escape 
       // TODO : *** restore dom *** 
      } 
     }); 
    }); 
}); 

有一種方法來做到這一點?

+1

不清楚你遇到了什麼問題。 「dom的地位」是什麼意思?你能給出一個HTML的例子,這個HTML被「存儲」,HTML如何改變,以及它會做什麼「恢復」? – maxedison

+0

您試圖保存和恢復哪部分HTML? – Eric

+0

@maxedison,Eric:我想用它的行爲(回調)恢復整個dom,就像在jQuery更新之前一樣。我們使用window.location.href = pageUrl –

回答

0

我們用window.location.href =「URL」重新加載頁面解決了這個問題:

$(document).ready(function() { 
    // add callbacks 

    $(".editable").click(function() { 
     // add other callbacks 

     $("#add").keyup(function(e){ 
      if (e.keyCode == 27) { // escape 
       window.location.href="thisPageUrl"; 
      } 
     }); 
    }); 
}); 

所以我們並不需要存儲任何狀態。只需依靠http請求。

2

尋找?

$(document).ready(function() { 
    // add callbacks 
    var original = $(".editable").html(); 

    $(".editable").click(function() { 
     // add other callbacks 

     $("#add").keyup(function(e){ 
      if (e.keyCode == 27) { // escape 
       $(".editable").html(original); 
      } 
     }); 
    }); 
}); 

您試圖保存和恢復哪個元素?

+1

重新加載頁面來解決問題。這不會保留綁定的JS事件。 –

0

您可以使用$('html')。html()保存HTML,然後將其插回到ESC之後。