2016-03-01 58 views
0

我能夠在Stackoverflow上找到一個solution,它顯示基於過濾器的HTML「li」元素(請參閱附件)。基本上基於HTML元素中定義的CSS類,它填充下拉列表,您可以從中選擇。下拉式過濾器的Javascript幫助

我想在下面修改javascript,以便在導航到「li」元素頁面之一時(如此處所示:https://jsfiddle.net/quwfmepL/2/ eg注意:選擇一個Test1元素並轉到page1.html頁面)。但當您將page1.html上的後退按鈕放到過濾器所在的頁面時,它不會記得上次過濾器的選擇。像現在這樣,您需要再次過濾相同的選擇。我認爲我需要做的是查看瀏覽器歷史記錄,但不確定是否有更簡單的選項。我希望它可以是查詢字符串或類似的格式。

<script type="text/JavaScript"> 
$(document).ready(function() { 
    var $tagList = $('#tag-list'), 
     optionArr = []; 
    $("#demo-list li a").each(function(index, item) { 
    $.each($(this).attr('class').split(' '), function(i, option){ 
     if ($.inArray(option, optionArr) == -1) { 
     $tagList.append('<option value="'+option+'">'+option.replace('-', ' ').replace('_', ' ')+'</option>'); 
     optionArr.push(option); 
     } 
    }); 
    }); 
    // Look at the URL for filter and modify here # 
    $tagList.on('change', function() { 
    var selection = $tagList.val(); 
    if (selection == "all") { 
     $('#demo-list li a').show(); 
    } else { 
     $('#demo-list li a').hide(); 
     $('#demo-list li a.'+selection).show(); 
    } 
    }); 
}); 
</script> 

任何建議或提示?任何幫助表示讚賞。

enter image description here

回答

1

小提琴行事有點怪異(不工作),對我來說。

您可能只想在.change函數中設置一個cookie,這可能是最簡單的方法。加載過濾器頁面時,檢查是否設置了cookie,如果是,則根據存儲的cookie值運行過濾器。

試用:https://github.com/js-cookie/js-cookie

或者,甚至可能更好,你可以使用webstorage(localStorage的)來完成同樣的事情。

http://www.w3schools.com/html/html5_webstorage.asp

+0

非常感謝您的反饋。我喜歡Webstorage,它更直接的實現。將研究這一點。再次感謝。 – user2690151