jQuery и jqTouch — проблема ajax.load
Вопрос
Я думаю, что моя проблема больше связана с моим подходом и больше относится к jquery, но здесь происходит что-то странное.
Я использую jQuery и jqTouch.Мой HTML:
<div id="home" class="current">
<div class="toolbar">
<h1>Header</h1>
</div>
<ul class="rounded">
<li class="arrow"><a href="#currentloc">Current Location</a></li>
</ul>
</div>
<div id="currentloc">
<div class="toolbar">
<h1>Nearby</h1>
</div>
</div>
Я пытаюсь сделать следующее: когда пользователь нажимает ссылку «Текущее местоположение», на странице PageAnimationEnd я хотел бы загрузить страницу и добавить ее в #currentloc.Вот мой код:
$('#currentloc').bind('pageAnimationEnd', function(e, info){
$(this).load('results.php');
});
Как видите, это полностью заменит содержимое #currentloc.Я не уверен, как добавить содержимое results.php, не заменяя то, что уже есть.Я рассмотрел возможность размещения запроса на загрузку ajax внутри приложения:
$(this).append(load('results.php'));
но это совершенно не сработало...
Есть идеи, что делать?
ОБНОВЛЯТЬ
Я попробовал одну вещь, которая работает, но кажется немного неуклюжей:
$('#currentloc').bind('pageAnimationEnd', function(e, info){
$(this).append('<ul></ul>');
$(this).find('ul').load('results.php');
});
Чувствую, что есть лучшее решение.
Решение
Функция загрузки в jquery заменяет содержимое, поэтому вам необходимо создать еще один элемент, если вы хотите сохранить текущий контент.Вы можете сделать свой код немного короче, если удалите вызов функции поиска.
$('#currentloc').bind('pageAnimationEnd', function(e, info){
$(this).append($('<ul />').load('results.php'));
});
или
$('#currentloc').bind('pageAnimationEnd', function(e, info){
$('<ul />').load('results.php').appendTo(this);
});