1

私はしばらくの間、オフとオンをいじっていた iPhone OS アプリの jQTouch をいじっています。私は自分の手でそれを Web アプリとして構築してみたいと思ったので、jQTouch で遊んでみました。参考までに、ここにページとソースを示します (すべてのコードが現在含まれてindex.htmlいるため、「ソースを表示」するだけですべてを表示できます)。

http://rpj.me/doughapp.com/wd/

基本的に、data() メソッドを使用して、Google ローカルから取得した関連する JSON オブジェクトを DOM オブジェクトに保存しようとしています (この例でobjは、Google ローカル オブジェクトです)。

$('#locPane').data('selected', obj);

その後(別の「ペイン」で)、使用するオブジェクトを取得します。

$('#locPane').bind('pageAnimationEnd', function(e, inf) {
            var selobj = $(this).data('selected');
            // use 'selobj' here ...
}

デスクトップ OS (私の場合は Snow Leopard) の Chromium と Safari では、これは完全に機能します (試してみてください)。

ただし、上記の 2 番目のスニペットのundefinedへの呼び出しでは、同じコードが返されます。$(this).data('selected')私も試してみまし$('#' + e.target.id).data('selected')$('#locPane').data('selected')undefinediPhone OS バージョンの WebKit ではすべての亜種が返されますが、デスクトップでは返されません。

興味深いことに、これを iPhone シミュレーターの Mobile Safari で実行しても失敗します

jqt完全なソースを見ると、このオブジェクトをグローバルな jQTouch オブジェクト (コードで名前を付けたもの) に保存しようとしていることがわかります。これも、モバイル プラットフォームでは失敗します。

他の誰かがこれに遭遇したことがありますか? 私は本業の 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 に答える