0

私の問題は私のアプローチにあり、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'));

しかし、それはまったく機能していませんでした...

どうすればいいですか?

アップデート

私が試したものの1つは機能しますが、少し不器用です

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

これにはもっと良い解決策があるように感じます。

4

1 に答える 1

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);   
});
于 2010-02-23T18:56:37.160 に答える