0
$(".paginate li").click(function(){
    $(this).attr('class','current');    
    $("#ajax_results").load("test.php?page=" + $(this).attr('rel')).fadeIn();
});

上記のコードは、ページネーション スクリプト用です。ユーザーがページネーション <li> をクリックすると、AJAX スクリプトは rel 値に基づいてリクエストを開始します。私が抱えている問題は次のとおりです。

$(this).attr('class','current');

それは短い間適用され、その後消えます。理想的には、クリックされた <li> に「current」のクラスを適用し、そのままにしておくことです。適用後すぐに削除される理由がわかりません。

4

1 に答える 1

0

私は自分の問題を解決し、解決策を投稿すると思いました。コードを確認した後、クラスの追加に関する問題は$(this)、AJAX 呼び出しが行われると定義されなくなることが明らかになりました。よりエレガントな回避策があるかもしれませんが、私が行ったことは以下のとおりです。

$(".paginate li").click(function(){
    var rel = $(this).attr('rel');

    $("#ajax_results").load("/ajax.php?id=" + $(this).attr('rel'), function(response, status, xhr) {
        if (status == "success") {
            $("li[rel="+rel+"]").addClass('current');
        }
    });
});

relの値として宣言し、$(this).attr('rel')成功するとaddClass()関数を関連するアイテムに渡します。完璧に動作します。

于 2012-11-06T13:54:25.330 に答える