Вопрос

Я думаю, что моя проблема больше связана с моим подходом и больше относится к 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);   
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top