2009-02-26 2 views
0

Запуск в самую странную проблему на iPhone с помощью jQuery с помощью моего WebViewController.iPhone Webkit jQuery странность: не удается обновить контент

У меня есть 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')); 
}; 

Работает отлично.

Затем я переключаюсь на другие divs ($('#thumbnails').hide(); $('#someotherdiv').show()), продолжаю о своем бизнесе и в конечном итоге переключаюсь обратно на миниатюры div.

На данный момент я не могу добавить какой-либо контент в этот div, используя jQuery. Я могу удалить просто отлично, но приложение больше не работает.

Тот же самый код отлично работает на Firefox и Safari вне iPhone, но как только во встроенном WebKit он терпит неудачу.

Если я изменить DOM непосредственно с помощью JavaScript работает, но если я использую JQuery это не удается:

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

«Первое, что» показывает вверх, но «Вторая вещь» не делает.

Любые идеи? Эта вещь сводит меня с ума.

ответ

1

Наконец нашли обходные:

Я звала свою цель-с помощью функции window.location. Оказывается, если бы я добавил setTimeout вокруг вызова window.location, все снова заработало. Я предполагаю, что вызов window.location немедленно вызовет код цели-C, прервав поток javascript, оставив вещи в плохом состоянии. Добавляя setTimeout, он позволяет завершить поток javascript перед тем, как перейти к объектно-C-коду. Или что-то типа того.