2016-09-24 35 views
0

私のメインページの機能を使用しています。すべて正常に動作します。リンクをクリックして別のページに移動すると、選択した言語をページに保持する方法を知りたいだけです。localStorage.setItemを使用して同じ表示/非表示のdivを維持する

たとえば、id = "en"はデフォルトで言語ですが、メインページでid = "fr"を使用したい場合は、リンクをクリックして別のページで私を送信します。 id = "en"に戻ってきます。だから私は、この機能を使用することができますどのように同じ言語を保つために:ここで

localStorage.setItem("language", selectedLanguage); 
currentlanguage= localStorage.getItem("language"); 

、私は言語を切り替えるために使用する機能のjsfiddleです:

https://jsfiddle.net/kodjoe/chvw181j/

$(document).ready(function() { 
 
    $('.lan').hide(); 
 
    $('.en').show(); 
 
}); 
 

 
$('.button').click(function(event) { 
 
    $('.lan').hide(); 
 
    var selectedLanguage = $(this).attr('id'); 
 
    var setActiveLanguage = "." + selectedLanguage; 
 
    $(setActiveLanguage).show(); 
 

 
localStorage.setItem("language", selectedLanguage); 
 
currentlanguage= localStorage.getItem("language"); 
 
});
.button { 
 
    cursor: pointer; 
 
    padding: 0px 30px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<a class="button" id="en">EN</a> 
 
<a class="button" id="fr">FR</a> 
 
<a class="button" id="de">DE</a> 
 

 

 
<div class="lan en">1</div> 
 
<div class="lan fr">2</div> 
 
<div class="lan de">3</div> 
 
<div class="lan en">4</div> 
 
<div class="lan fr">5</div> 
 
<div class="lan de">6</div>

+0

把握するのは難しいすべきではない...イベントハンドラ内で設定され、ページのロードに乗ります。 – charlietfl

+0

@charlietflそれがそうであるかどうかわからないので、他のページでそれを使用する必要がありますか? – coolio83000

+0

をyesに設定します。しかし、ページの読み込みに「取得」したいので、あなたが隠れている/表示していることを知っている – charlietfl

答えて

0

最初に値を保存してください

何の値が、それは nullを返します保存されていない場合
$('.button').click(function(event) { 
    $('.lan').hide(); 
    var selectedLanguage = $(this).attr('id'); 
    var setActiveLanguage = "." + selectedLanguage; 
    $(setActiveLanguage).show(); 

localStorage.setItem("language", selectedLanguage); //storing under the key of language 

}); 

は、あなたの.ready機能

var langStored = localStorage.getItem("language"); 

に準備ができて上の値を取得します。

ですから、あなたがlangStoredを取得するときに何をしたいのかが条件を入れて、あなたはnull

を得るときにかいま見取る:codepen

+0

皆それは完璧に動作します; D – coolio83000

+0

thnに投票してください! :) –

0

セット/のlocalStorageアイテムを取得します。

localStorage.setItem('selectedLang', $(this).attr('id')); 

localStorage.getItem('selectedLang'); 

ドキュメント:HTML5 Web Storage

コードご例えば

$(document).ready(function() { 
    $('.lan').hide(); 
    var classSel = localStorage.getItem('selectedLang') ? localStorage.getItem('selectedLang') : 'en'; 
    //Get the value from localStorage and show that class only 
    $('.'+classSel).show(); 

    $('.button').click(function(event) { 
     $('.lan').hide(); 
     $("." + $(this).attr('id')).show(); 
     //Set the localStorage value 
     localStorage.setItem('selectedLang', $(this).attr('id')); 
    }); 
}); 
+0

okメインページにコードを追加する必要がありますが、私は同じ機能を実行する他のページに入れてしまいましたか? – coolio83000

+0

ちょうどあなたのJavaScriptコードを私のものと置き換えれば、それは動作します。 –

+0

1つの一般的なjsファイルを作成して、上記のようにjavascriptの完全なコードをロードし、HTMLがボタンに利用可能な場合に動作するか、以前に選択したlocalstorageの値は、あなたは私のポイントを得ることができますか? –

関連する問題