2009-12-24 116 views
1

我正在玩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

更新:我沒能在原崗位明確,但我願意接受任何解決辦法,如果它的工作原理一致。由於我在整體上存儲這些對象時遇到問題,因此現在可以讓我保留它們的任何東西都足夠了。謝謝!

回答

1

據我所知,移動Safari存儲這樣的對象似乎存在一個錯誤。所以我所做的只是將對象的組件存儲在文檔數據存儲中。

$(document).data("lessonCode" , lesson.lessonCode); 
$(document).data("question" , lesson.question); 
$(document).data("answer" , lesson.answer); 
+0

不幸的是,我沒有這種方法的運氣。我嘗試將原始數據對象(例如字符串)存儲在$(document)數據存儲區中,但仍然以檢索時未定義的值結束。 – rpj 2009-12-24 02:26:00

2

您是否嘗試過使用HTML5 data-ref屬性?數據必須字符串化,但您可以做

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

仍然有有效的HTML5標記。

相關問題