0

私のWebViewControllerでjQueryを使用して、iPhoneで最も奇妙な問題に遭遇しました。

コンテンツを追加する div があります。

<div id="thumbnails">
  Here are your thumbnails:
  <div id="mythumbs"></div>
</div>

コードは次のようになります。

for (var i = 0; i < thumbs.length; i++) {
  var item = thumbs[i];
  $('<img class="imgthumb" />').data('url', item.Url).attr({
    "src": item.Thumbnail.Url,
  }).appendTo($('#mythumbs'));
};

よく働く。

次に、他の div ( $('#thumbnails').hide(); $('#someotherdiv').show()) に切り替えて、自分の仕事を続け、最終的にサムネイル div に戻ります。

この時点で、jQuery を使用してその div にコンテンツを追加することはもうできないようです。問題なく削除できますが、追加は機能しなくなりました。

iPhone 以外の Firefox や Safari ではまったく同じコードがうまく機能しますが、埋め込まれた WebKit では機能しません。

JavaScript を使用して DOM を直接変更すると機能しますが、jQuery を使用すると失敗します。

var x = document.createTextNode('THE FIRST THING');
document.getElementById('thumbspage').appendChild(x);
$('#thumbspage').append('-- THE SECOND THING');

「THE FIRST THING」は表示されますが、「THE SECOND THING」は表示されません。

何か案は?このことは私を夢中にさせています。

4

1 に答える 1

1

最後に回避策を見つけました:

window.location を使用して Objective-C 関数を呼び出していました。window.location への呼び出しの周りに setTimeout を追加すると、すべてが再び機能し始めました。window.location を呼び出すとすぐに目的の C コードが呼び出され、javascript スレッドが中断され、状態が悪いままになると思います。setTimeout を追加することで、Objective-C コードにジャンプする前に JavaScript スレッドを終了させることができます。またはそのようなもの。

于 2009-03-06T19:45:09.530 に答える