2011-07-23 6 views
0

ajaxに関する問題があります。リロード幅ajaxと現在のクラスを維持する

私はメニューリスト(ul li)を持っており、デフォルトでは最初のクラスは 'current'クラスです。 2番目のアイテムをクリックするとjqueryでクラス 'current'を割り当て、前のクラスから削除します。

これで、メニューリストをajaxでリロードする必要があります。そのため、アップデート用のHTMLリストを返すphp関数を呼び出すajax関数を呼び出します。

しかし、このようにして、私はjqueryを割り当てる前に、2番目のリストから 'current'クラスを失います。

このタイプの問題が何度も起こります。解決する正しい解決策は何ですか?

答えて

0

それを行うための一つの方法は、クラスcurrentliのインデックスを取得し、ajax成功コールバックでliのインデックスを取得するには、このフィドルで適切なインデックス

外観にcurrentクラスを割り当てることですあなたのsuccessコールバック

success:function(data){ 
var i = index -1; // index is zero based and eq() is 1 based 
$("ul li:eq(i)").addClass("current"); 

} 
+0

okですが、php関数を使用してアイテムを追加しましたか?最後のインデックスはもはや有効ではありません...今、変数に現在のアイテムを保存したajax関数を呼び出す前に、すべてのアイテムのIDを使用しています.AJAXが完了したら、 '現在の' ..を復元します。このソリューションは「正しい解決策」だと考えてください。 多分セッションで... – keepyourweb

0

http://jsfiddle.net/3nigma/zyayj/

私はあなたの質問が示す考えますウェブページが「ステートレス」であることを知らず、つまり、あなたがそれらを使って何かを「自動的に」保持したり保存したりしないことを意味します。

物事の状態を保持する方法を要約した前回の質問を参照してください。原則はメニューにそのまま残ります。

Stateless HTML

関連する問題