2010-02-23 5 views
0

Я думаю, что моя проблема кроется в моем подходе и больше относится к jQuery, но здесь происходит что-то странное.jQuery & jqTouch - проблема ajax.load

Я использую 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 без замены того, что уже есть. Я посмотрел на ввод запроса нагрузки АЯКС внутри Append:

$(this).append(load('results.php')); 

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

Любая идея, что делать?

UPDATE

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

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

Почувствуйте, как есть лучшее решение этой проблемы.

ответ

2

Функция загрузки в 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); 
}); 
Смежные вопросы