【发布时间】:2011-05-06 01:11:10
【问题描述】:
我正在使用 History.pushState() 函数,我正在将一个 jQuery 对象保存到推送状态对象中,但是当触发 statechange 事件时,我正在检索没有 jQuery 对象的状态对象数据,而只有“普通”对象:
var object = {link : $("#varianty")}; 控制台.log(object.link); History.pushState(object,"test","test.php");控制台返回 jQuery 对象
jQuery(div#varianty.box)
但是当 statechange 事件被触发时:
History.Adapter.bind(window,'statechange',function(){ var State = History.getState(); var 链接 = State.data.link; 控制台.log(链接); });控制台返回一个对象
Object { length=1, 0={...}, more...}
详细转储
0 => 对象 { jQuery1304643255828=39, 构造函数={...}} 上下文 => 对象 { 位置 ={...}} 长度 => 1 选择器=>“#varianty”是否有机会在状态对象中检索 jQuery 对象,如果没有,则没有很酷的方法,但我可以通过以下方式再次选择对象:
$(State.data.link.selector);
但是通过pushState对象传递jQuery对象是没有用的...
需要它在点击事件上推送$(this) 对象。
感谢您提供任何建议或解决方案! :)
【问题讨论】:
-
有点困惑:你的第一个代码块根本没有选择一个 jQuery 对象,根据详细的转储(如果是检索到的对象)那么它是一个 jQuery 对象......所以我不确定你的意思是什么?
-
我在格式化文本时错误地删除了“$”。
标签: javascript jquery html browser-history pushstate