2011-06-22 14 views
0

他のページに行くと、どのように開いているアイテムを保持できますか?私が戻ってきたら、ページをリロードしたり、「前のページ」(ブラウザの履歴)に来ても、最後に開いておきたい。 ui-state-activeは、現在開いている項目に設定されています。Selectable(jQuery UI)のブラウザ履歴

答えて

1

クッキーを使用する代わりに、location.hashを使用してその情報を保存することを検討することもできます。

ユーザーがブラウザの履歴を使用してページに戻ると、ハッシュが設定され、好きなように検索できます。

ハッシュ値に基づいて、select要素内のオプションを選択するには、ハッシュを使用して、基本的な例:

<script> 
$(function() { 
    // read the hash and strip the '#' if found 
    var hashValue = (location.hash != "") ? location.hash.substr(1) : null; 

    // select the option with value = hashvalue 
    if(hashValue) { 
     $("#selectElement").val(hashValue); 
    } 

    // when the user selects an option, store the option value in the location.hash 
    $("#selectElement").change(function() { 
     location.hash = $(this).val(); 
    }); 
}); 
</script> 

<select id="selectElement"> 
    <option value="1">option 1</option> 
    <option value="2">option 2</option> 
    <option value="3">option 3</option> 
    <option value="4">option 4</option> 
</select> 
+0

それは動作しますが、jqueryのであまりにも多くの仕事はdivタグを削除している私がすべき追加します。 – gormit

+0

あなたは覚えておきたい状態のページを持っている最後にクリックされた要素の情報(例えばid)を保存し、ユーザが戻ったときに同じイベントを '再生'することもできますこのページは、[jQuery .trigger()](http://api.jquery.com/trigger/)を使用してページを開きます: '$("# "+ hashValue).trigger(" click ");' –

+0

それです。どうもありがとう! – gormit

1

これは苦しいかもしれませんが、あなたはクッキーを使用する必要があります。ページの読み込み時にCookieから値を読み込み、コントロールが値を変更するたびにCookieを保存する必要があります。私は、jQueryUIのタブにはjquery.cookie.jsを使ってこのビルドがあると思います。

関連する問題