jQuery& jqTouch - ajax.load问题

时间:2010-02-23 17:34:23

标签: jquery ajax jqtouch

我认为我的问题更多地在于我的方法并且更多地应用于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>

我要做的是当用户点击当前位置链接时,在页面动画上我想加载页面并将其附加到#currentloc。这是我的代码:

$('#currentloc').bind('pageAnimationEnd', function(e, info){
    $(this).load('results.php');
});

如您所见,这将完全取代#currentloc的内容。我不确定如何附加results.php的内容而不替换已经存在的内容。我已经看过将ajax加载请求放在append:

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

但那完全不起作用......

知道该怎么做?

更新

我试过的一件事虽然有效,但感觉有点笨拙

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

感觉有更好的解决方案。

1 个答案:

答案 0 :(得分:2)

jquery中的load函数替换了内容,因此如果要保留当前内容,则必须创建另一个元素。 如果删除对find函数的调用,则可以使代码更短。

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

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