有没有办法重置当前页面?释放所有事件处理程序,删除任何由Jquery切换的CSS,简单来说,将页面恢复到原始状态而不刷新?
答案 0 :(得分:2)
嗯,这是一个解决方案 - 在你完成任务之前捕获body
的克隆,然后当你需要重置时,用这个克隆替换整个body
。
var original = $('body').clone();
$('#reset').click(function() {
$('body').replaceWith(original);
});
当然,这不会撤消您在其他地方所做的任何更改,例如在head
中,但它仍然比您获得的其他选项略胜一筹,对吧?
请参阅:http://jsfiddle.net/uevrM/
修改:刚刚意识到,这也不会扼杀使用live
或delegate
创建的任何事件处理程序。所以,不,不,这不是100%干净。
答案 1 :(得分:0)
refresh/reload page. There's no other way.
我评论了OP的帖子。
但是考虑到这一点,我认为有一种方法。
在css部分,动画正在style
属性上完成。删除style
属性会从动画中重置元素。但请注意,如果您使用style
属性来设置元素的样式,那么它也会被删除。
在绑定事件上,您可能希望绑定命名空间事件。例如,绑定点击看起来像这样,
$('#someID').bind('click.toBeRemove', function(){...})
因此,$('*').unbind('.toBeRemove')
可以轻松删除事件。保留其他原始事件(在此示例中为click事件)。
使用插件时,请使用具有.destroy()
方法的插件,以便在元素上删除它的功能和样式。
但这并非100%确定有效。只是一个理论。有这么简单的方法 NO 。 - 是的!没有$(window).reset()
会重置页面而不重新加载。