jQuery.data()适用于Mac OS WebKit,但不适用于iPhone OS?
我正在玩jQTouch的iPhone OS应用程序,我一直玩弄了一段时间。我想尝试将它作为一个Web应用程序来构建,所以我开始使用jQTouch。作为参考,在这里是页面+源(所有我的代码是目前index.html
所以你可以“查看源文件”看到这一切):jQuery.data()适用于Mac OS WebKit,但不适用于iPhone OS?
http://rpj.me/doughapp.com/wd/
本质上讲,我试图挽救有关JSON从谷歌本地检索到使用数据()方法DOM对象的对象(在此实例中,obj
是谷歌本地对象):
$('#locPane').data('selected', obj);
然后以后(在不同的“窗格”),检索该对象是used:
$('#locPane').bind('pageAnimationEnd', function(e, inf) {
var selobj = $(this).data('selected');
// use 'selobj' here ...
}
在桌面操作系统(雪豹在我的情况下)Chromium和Safari,这完美(尝试它)。
但是,在上面第二个片段中,对于$(this).data('selected')
的调用,相同的代码返回undefined
。我也试过$('#' + e.target.id).data('selected')
,甚至天真$('#locPane').data('selected')
。在iPhone OS版本的WebKit中,所有变体均返回undefined
,但不在桌面上。
有趣的是,在iPhone模拟器的移动Safari上运行此操作也不如。
如果您看完整的源代码,您会发现我甚至尝试将此对象保存到我的全局jQTouch对象中(在我的代码中名为jqt
)。这也在移动平台上失败。
还有没有其他人碰到过这个?我承认不是一个通过交易成为网络/ JavaScript程序员,所以如果我犯了一个白痴的错误,请打电话给我。
非常感谢您的帮助! -RPJ
更新:我没能在原岗位明确,但我愿意接受任何解决办法,如果它的工作原理一致。由于我在整体上存储这些对象时遇到问题,因此现在可以让我保留它们的任何东西都足够了。谢谢!
据我所知,移动Safari存储这样的对象似乎存在一个错误。所以我所做的只是将对象的组件存储在文档数据存储中。
$(document).data("lessonCode" , lesson.lessonCode);
$(document).data("question" , lesson.question);
$(document).data("answer" , lesson.answer);
您是否尝试过使用HTML5 data-ref属性?数据必须字符串化,但您可以做
$('#locPane').attr('data-selected', "somestring");
仍然有有效的HTML5标记。
不幸的是,我没有这种方法的运气。我尝试将原始数据对象(例如字符串)存储在$(document)数据存储区中,但仍然以检索时未定义的值结束。 – rpj 2009-12-24 02:26:00