我认为我的问题更多地在于我的方法并且更多地应用于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');
});
感觉有更好的解决方案。
答案 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);
});