2009-02-26 7 views
0

In das seltsamste Problem auf dem iPhone mit jQuery mit meinem WebViewController.iPhone Webkit jQuery Fremdheit: Inhalt kann nicht aktualisiert werden

Ich habe ein div in die ich Inhalt anfügen:

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

Der Code sieht so aus:

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')); 
}; 

großen Werke.

Dann wechsle ich zu anderen divs ($('#thumbnails').hide(); $('#someotherdiv').show()), gehe über mein Geschäft, und schließlich zurück zu den Thumbnails Div.

An diesem Punkt kann ich nicht scheinen, um irgendwelche Inhalte zu diesem Div mit jQuery mehr anhängen. Ich kann es gut entfernen, aber der Append funktioniert nicht mehr.

Der exakt gleiche Code funktioniert hervorragend bei Firefox und Safari außerhalb des iPhone, aber einmal im eingebetteten WebKit schlägt es fehl.

Wenn ich das DOM modifizieren direkt mit Hilfe von JavaScript es funktioniert, aber wenn ich jQuery verwenden Sie es nicht:

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

„Das erste, was“ zeigt, aber „Die zweite Sache“ nicht.

Irgendwelche Ideen? Dieses Ding macht mich verrückt.

Antwort

1

Schließlich fand ein Work-around:

ich mein Ziel-c-Funktion window.location aufrufen. Es stellte sich heraus, wenn ich einen setTimeout um den Aufruf von window.location hinzugefügt hatte, fing alles wieder an zu arbeiten. Ich nehme an, dass das Aufrufen von window.location den Code von objective-c sofort aufruft und den JavaScript-Thread unterbricht, wodurch die Dinge in einem schlechten Zustand bleiben. Durch das Hinzufügen von setTimeout kann der JavaScript-Thread beendet werden, bevor in den Ziel-C-Code gesprungen wird. Oder etwas ähnliches.

Verwandte Themen