jQuery & jqTouch - проблема ajax.load - PullRequest
       8

jQuery & jqTouch - проблема ajax.load

0 голосов
/ 23 февраля 2010

Я думаю, что моя проблема больше связана с моим подходом и больше относится к 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'));

но это совершенно не сработало ...

Есть идеи, что делать?

UPDATE

Одна вещь, которую я пробовал, которая работает, но кажется немного неуклюжей, это

$('#currentloc').bind('pageAnimationEnd', function(e, info){
 $(this).append('<ul></ul>');  
 $(this).find('ul').load('results.php');
});

Чувствую, что есть лучшее решение для этого.

1 Ответ

2 голосов
/ 23 февраля 2010

Функция загрузки в 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);   
});
...