2017-09-24 13 views
-2

私がやっていることは、選択されているオプションに基づいて2つの異なるメニューを表示することです。あなたは、私がoption aoption bクリックでCSSサイト全体を変更

.option-a, .option-b { 
 
    text-transform: uppercase; 
 
    display: inline-block; 
 
} 
 

 
.option-a:hover, .option-b:hover { 
 
    text-decoration: underline; 
 
} 
 

 
.option-a-content { 
 
    display: block; 
 
} 
 
.option-b-content { 
 
    display: none; 
 
}
<div class="option-a"> 
 
Option A 
 
</div> 
 
<div class="option-b"> 
 
Option B 
 
</div> 
 
<br> 
 
<br> 
 
<div class="option-a-content"> 
 
This is the contents of A 
 
</div>

option-a-contentを持って見ることができます私のスニペットで はdisplay: blockoption-b-contentに設定されているdisplay: none;

に設定されている私は「あなたがクリックしたときにそれを作りたいですオプションB 'option-a-contentのCSSをdisplay: noneに変更し、それをdisplay: block

012に変更します

編集:明確にするために、私の問題は、クリックで変更するCSSを得ることができますが、ページから移動するとデフォルトに戻ります。

+0

ピュアコード書き込み要求は、スタックオーバーフローにオフトピックです - 我々はに関連し、ここで 質問に期待*特定の*プログラミングの問題 - しかし、我々は あなた自身を書くことを喜んで助ける! [何を試してみましたか](https://stackoverflow.com/help/how-to-ask)とどこにいるのか教えてください。 これはまた、あなたの質問によく答えるのにも役立ちます。 – glennsl

+0

ああ申し訳ありませんが、私の問題は、具体的には、jqueryのCSS関数を使用すると、私はページ間を移動するときにそれを得ることができませんので、divを有効/無効にすることができますが、私はそれを行いました、それはデフォルトに戻します。 – tbar

+0

あなたはセッション変数を持つクライアント側(例えば、localstorageまたはサーバー側)の状態を覚えておく必要があります。選択したソリューションに応じて、アプリはコンテンツがどのような状態にあるのかを見つけて、それに応じて更新する必要があります。とにかくページ上でJavaScriptを使用しているので、ユーザーの選択をlocalstorageに保存して、それをdocumentReadyで取得することをお勧めします。参照してください:https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API – Moob

答えて

0

ここでのlocalStorageで状態を保存する簡単な例です:

$(function(){ 
    $(".option-toggle").on("click", function(){ 
     //get the href of the clicked item. This is the id of the element we wish to show 
     var selectedOptionID=$(this).attr("href"); 
     //hide all option-content elements 
     $(".option-content").attr("aria-hidden",true); 
     //show the one we want 
     $(selectedOptionID).attr("aria-hidden",false); 
     //remember the active one in localstorage 
     localStorage.setItem("selectedOptionID", selectedOptionID); 
    }); 

    //onload, read from local storage and trigger a click on the appropriate option: 
    var selectedOptionIdFromStorage = localStorage.getItem("selectedOptionID"); 
    if(selectedOptionIdFromStorage){ 
     //trigger a click on the select-option having a href equal to selectedOptionIdFromStorage: 
     $(".option-toggle[href='"+selectedOptionIdFromStorage+"']").trigger("click"); 
    } 
}); 

https://jsfiddle.net/jvsnphmn/3/

+0

私はスニペットにこれを入れていますが、localstorageの制限のために動作しません。 – Moob

関連する問題