ページをどこか (クライアント上) に「保存」してから、すべてのイベント リスナーをそのままにして復元するにはどうすればよいでしょうか?
http://jsfiddle.net/KellyCline/Fhd55/にサンプルがあり、「ページ」を作成して保存し、ボタンをクリックして「次の」ページに移動し、最初のページを別のページに復元する方法を示していますボタンのクリックですが、最初のページのクリック リスナーはなくなりました。
これは html() が実行するシリアライゼーションによるものであることを理解しているので、明らかに、それは私が間違っていることですが、私が望むのはそれを正しく行うための手がかりです。
これはコードです:
var history = [];
$(document).ready(function () {
var page1 = $(document.createElement('div'))
.attr({
'id': 'Page 1'
}).append("Page ONE text");
var nextButton = $(document.createElement('button'));
nextButton.append('NEXT');
nextButton.on('click', function () {
CreateNextPage();
});
page1.append(nextButton);
$("#content").append(page1);
});
function CreateNextPage() {
history.push( $("#content").html( ) );
$("#content").html( 'Click Me!');
var page1 = $(document.createElement('div'))
.attr({
'id': 'Page 2'
}).append("Page TWO text");
var nextButton = $(document.createElement('button'));
nextButton.append('NEXT');
nextButton.on('click', function () {
CreateNextPage();
});
var prevButton = $(document.createElement('button'));
prevButton.append('PREVIOUS');
prevButton.on('click', function () {
GoBack();
});
page1.append(nextButton);
page1.append(prevButton);
$("#content").append(page1);
}
function GoBack() {
$("#content").html( history[history.length - 1]);
history.pop( );
}
これはhtmlです:
私をクリックしてください!