1

我正在为一个 iPhone OS 应用程序使用 jQTouch,我已经断断续续地玩了一段时间。我想尝试将其构建为 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(在我的例子中是雪豹)中,这非常有效(试试看)。

但是,上面第二个片段中undefined的调用返回相同的代码。$(this).data('selected')我也尝试过$('#' + e.target.id).data('selected'),甚至是幼稚的$('#locPane').data('selected')。所有变体undefined都在 iPhone OS 版本的 WebKit 中返回,但不在桌面上。

有趣的是,在 iPhone 模拟器的 Mobile Safari 上运行它也失败了

如果您查看完整源代码,您会发现我什至尝试将此对象保存到我的全局 jQTouch 对象(jqt在我的代码中命名)。这在移动平台上也失败了。

有没有其他人遇到过这个?我承认我不是一个 web/javascript 程序员,所以如果我犯了白痴的错误,请告诉我。

预先感谢您的帮助!-RPJ

更新:我在原始帖子中没有说清楚,但如果它始终如一地工作,我愿意接受任何解决方法。由于我通常无法存储这些对象,因此现在任何可以让我保留它们的东西都足够了。谢谢!

4

2 回答 2

2

您是否尝试过使用 HTML5 data-ref 属性?数据必须被字符串化,但你可以这样做

$('#locPane').attr('data-selected', "somestring");

并且仍然有有效的 HTML5 标记。

于 2010-05-26T02:50:15.697 回答
1

据我所知,Mobile Safari 存储这样的对象似乎存在错误。所以我所做的只是将对象的组件简单地存储在文档数据存储中。

 $(document).data( "lessonCode" , lesson.lessonCode);
 $(document).data( "question" , lesson.question);
 $(document).data( "answer" , lesson.answer);
于 2009-12-24T01:32:06.100 回答