我正在玩jQTouch for iPhone OS应用程序,我已经玩了一段时间。我想尝试将其构建为Web应用程序,因此我开始使用jQTouch。作为参考,这里是页面+源代码(我的所有代码目前都在index.html
中,因此您只需“查看源代码”即可查看全部内容:
http://rpj.me/doughapp.com/wd/
基本上,我正在尝试使用data()方法将从Google Local检索到的相关JSON对象保存到DOM对象中(在此示例中,obj
是Google Local对象):
$('#locPane').data('selected', obj);
然后(在另一个“窗格”中),检索要使用的对象:
$('#locPane').bind('pageAnimationEnd', function(e, inf) {
var selobj = $(this).data('selected');
// use 'selobj' here ...
}
在桌面操作系统上的Chromium和Safari(我的情况下是Snow Leopard)中,这非常有效(尝试一下)。
但是,相同的代码会返回undefined
,以便在上面的第二个代码段中调用$(this).data('selected')
。我也尝试了$('#' + e.target.id).data('selected')
甚至是天真的$('#locPane').data('selected')
。所有变体都在Web OSit的iPhone OS版本中返回undefined
,但不在桌面上。
有趣的是,在iPhone模拟器中在Mobile Safari上运行此功能也会失败。
如果查看完整的源代码,您会看到我甚至尝试将此对象保存到我的全局jQTouch对象(在我的代码中名为jqt
)。这也在移动平台上失败了。
有没有其他人碰到这个?我承认不是一个网络/ javascript程序员的交易,所以如果我犯了一个白痴的错误,请打电话给我。
提前感谢您的帮助! -RPJ
更新:我没有在原帖中说清楚,但如果一直有效,我会对任何解决方法持开放态度。由于我在存储这些物体时遇到了麻烦,所以任何可以让我保持这些物体的东西现在已经足够了。谢谢!
答案 0 :(得分:2)
您是否尝试过使用HTML5 data-ref属性?数据必须按字母顺序排列,但您可以执行
$('#locPane').attr('data-selected', "somestring");
并且仍然具有有效的HTML5标记。
答案 1 :(得分:1)
据我所知,Mobile Safari中存在一个存储此类对象的错误。所以我所做的只是将对象的组件存储在文档数据存储中。
$(document).data( "lessonCode" , lesson.lessonCode);
$(document).data( "question" , lesson.question);
$(document).data( "answer" , lesson.answer);