【发布时间】:2015-06-30 17:27:18
【问题描述】:
function setItemStates() {
savedItemState = $('#my-items').clone(true, true);
sessionStorage.setItem('savedItemState', savedItemState.html());
}
function getItemStates() {
var domElem = sessionStorage.getItem('savedItemState');
domElem = $(domElem);
$('body').html(domElem) // No events or state
}
我正在寻找一种方法来在我克隆并保存到 sessionStorage 后恢复我的 DOM 事件。
【问题讨论】:
-
我猜这是不可能的,因为您将 HTML 保存为字符串,并且它没有事件或数据的概念。
-
我在想可能有一种方法可以存储事件并将它们应用到 html 之后?仍在寻找
-
你得到了innerHTML,所以你并没有真正重新创建
#my-items,那个元素丢失了? -
不,尝试了一些测试,对象被转换为字符串,所以没有办法将事件和数据保存在存储中,唯一的选择是委托事件处理程序,但这对跨会话存储不是很有帮助的元素。如果您真的不需要跨页面加载存储元素,则应将元素存储在变量中并改用
detach。 -
为什么不能使用jquery .on()?
标签: javascript jquery session clone