2011-11-15 27 views
3

私はDjangoで開発しているWebアプリケーションを持っています。ユーザーがサイト上のどこにいるかを簡単に追跡できるようにしています。 メニューでクリックした項目のCSSを変更すると思いました。JQuery addClassは永続的ではありません

この単純なコードを追加しました。

<script type="text/javascript"> 
     $(document).ready(function(){ 

     $(".up_menu_item").click(function(){ 
       $(this).addClass("green"); 
       var excludeThis = $(this); 
       $(".up_menu_item").not(excludeThis).each(function(){ 
         $(this).removeClass("green"); 
       }); 
     }); 

     }); 
     </script> 

メニュー項目をクリックすると、色が変わりますが、直後にデフォルトに戻ります。私がクリックした項目は実際には、ユーザーを別のURLにリダイレクトするタグです。しかし、メニュー(とjavascript)は常に呼び出されるURLに含まれているので、クラスが残っていると思いました。

私は非常にはっきりしているのか分かりませんが、これが私を狂ってしまい始めているので、助けていただければ幸いです。

+0

ページをリロードすると、ページのすべてがリロードされるので、クラスがリセットされるので、ページの読み込み時にクラスを追加できるように、ユーザーのクリックを保存する必要があります。 – Kimtho6

+0

回避する方法はありますかそれ ? – Johanna

+0

別のページがある場合は、マークアップですでに「緑色」のクラスを設定でき、jqueryコードは不要です。 –

答えて

0

クラスを新しい要素に読み込む前に、すべての要素からクラスを削除する方が簡単なのでしょうか?

$(".up_menu_item").click(function(){ 
    $($(this).attr('class')).removeClass(); 
    $(this).addClass("green"); 
}); 
+0

あなたがここで何をしようとしているのか分かりません...さらに、jQueryにパラメータのないremoveClass()もありません。 –

+0

http://stackoverflow.com/questions/1424981/how-to-remove- all-css-classess-using-jquery –

+0

おしゃれなこと:-) –

0

別のページに移動すると、Javascript(またはjQueryは自然に)で適用されたすべての変更がなくなりました。ページは通常通りに読み込まれます。すべての変更は、現在表示されているページのに適用されます。後に続くページは変更されません。

ページが読み込まれたときに開いているページを確認し、対応するボタンの色を変更できます。最善の方法は、ページが右ボタンと一致する場合は、サーバー側のプログラミング言語(あなたの場合はDjangoフレームワークを使用するPython)を使用してクラスを追加することです。

+0

私はそれほどのことはしたくないと思っています。どのページが開いているかをどうやって確認しますか? – Johanna

+0

私は決してPythonでプログラミングしたことがないので、そのハハであなたを助けません! –

+0

頼む価値がありました!しかし、それはそれほど難しい質問ではないと思います。唯一のことは、私も "サブメニュー"を持っている、これは現在のURLをチェックすることによって処理するのが難しいかもしれない – Johanna

2

Javascriptはこれに適したツールではありません。コメントでKimが言うように、あなたがページをリロードするとき、あなたのクラスはもはや存在しません。

Djangoを使用しているので、これを行う方法はDjangoテンプレートにあります。メニュー内の各URLについて、現在のURLと一致するかどうかをチェックし、そうであればクラスを追加します。

編集あなたは(あなたがrequest context processorを有効にした場合は自動的に行われます)あなたのテンプレートにリクエストを渡されてきたと仮定すると、request.pathから現在のURLを取得することができます。

+0

私はまだDjangoに新しいです、どのように現在のURLをチェックしますか? – Johanna

関連する問題