2013-03-06 2 views
0

Я бегу следующий простой сценарий:.load() не работает должным образом в JQuery 1.9.1

$(function(){ 
$('#divName').load('http://www.mydomain.com/someurl/'); 
}); 

В JQuery 1.8.3, он загружает внешнюю страницу (то же доменное имя) в #divName как и ожидалось. В 1.9.1 он ничего не делает. Интересно, что если я запускаю:

$('#divName').load('http://www.mydomain.com/someurl/'); 

в консоли, он работает как ожидается; он просто не делает это автоматически на document.ready. Плагин миграции jQuery исправляет проблему, однако она не дает мне никаких предупреждений, указывающих на то, что проблема.

Мне не нужно срочно обновлять до 1.9, так что теперь я придерживаюсь 1.8.3, но я точно знаю, что изменилось в 1.9, что вызывает эту проблему, так что я (а) (b) может идти вперед и придерживаться последней версии, так как это мое предпочтение.

+1

Вы протестировали это в разных браузерах? это запрос ajax, отображающийся в консоли firebug или google chrome? Если это тот же домен, вы можете заменить 'http: // www.mydomain.com/someurl /' на '/ someurl /' –

+4

. Есть ли другие ошибки на вашей консоли, а не при запуске вручную, но jsut загружает страницу с помощью код, о котором идет речь в браузере? – prodigitalson

+0

Протестировано в последних версиях Safari, Chrome и FF на Mac. Нет запроса AJAX, присутствующего в консоли (в Chrome, но не присутствующем в консоли Firebug). – Carsen

ответ

0

Проблема вызвана ошибкой в ​​несвязанном плагине. Когда плагин был удален, проблема разрешилась сама.

1

Единственное возможное объяснение, которое я могу придумать для вашего сценария, учитывая детали, заключается в том, что ваш <div id="divName"> добавляется через ajax на DOM, поэтому он еще не доступен в предыдущей части вашего обработчика DOM.

Попробуйте сделать console.error($('#divName').length) и посмотреть, существует ли узел.

+0

Спасибо за предложение, но div физически существует в HTML. – Carsen

Смежные вопросы