2011-03-29 60 views
1

我爲數據表創建了一個高級過濾器。現在我想將所選選項添加爲url參數。所以每次選擇一個選項時,URL都會改變,如果頁面被重新加載,它會根據url參數打開選定的過濾器。jQuery切換div選擇選項與url參數

這是我到目前爲止的example ...任何有關url參數的幫助將不勝感激。

回答

2

使用URL的片段來做到這一點。這樣你就可以在不用重新加載頁面的情況下修改javascript中的URL。然後,當您點擊刷新時,該片段將與URL保持一致。

所以,每次下拉值發生變化,這樣設置的URL的值:

window.location.hash = '#somevalue' 

然後,當頁面加載:

$(document).ready(function() { 
    // access hash using window.location.hash and show/hide based on its value 
} 
+0

可以用於一個......但是如果選擇了所有三個值會怎麼樣 – Jeffrey 2011-03-29 00:28:05

+0

您可以在散列中存儲任何字符串。所以,要有創意......將值存儲在逗號分隔的字符串中。當你需要什麼值的時候,在逗號分割得到你選擇的值列表。 – DNR 2011-03-29 16:40:58

1

.change()設置的URL值功能。這將每次更換當前的URL哈希:

var urlArgs = $(".filterControl:visible").map(function() 
{ 
    return this.id + "=" + $(this).val(); 
}).get().join("&"); 
location.href = "#" + urlArgs; 

然後,onload事件,解析哈希:

$(function() 
{ 
    $.each(location.hash.replace(/\#/, "").split("&"), function(filterArg) 
    { 
     var parts = filterArg.split("="); 
     $("#" + parts[0]).val(parts[1]); 
    }); 
}); 

順便說一句,這個代碼假定每個<select>一類filterControl爲了方便選擇他們。當然,你可以使用任何你喜歡的方法來選擇它們。

+0

URL有可能允許多個值(即 - ?d = Mon&c = 12&s = FR) – Jeffrey 2011-03-29 01:59:11

+0

是的。這就是代碼所做的。 – gilly3 2011-03-29 03:17:02