我为数据表创建了一个高级过滤器。现在我想将所选选项添加为url参数。因此,每次选择一个选项时,网址都会更改,如果页面重新加载,它将根据网址参数打开所选的过滤器。
这是我目前所拥有的example ...对url参数的任何帮助都将不胜感激。
答案 0 :(得分: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
}
答案 1 :(得分:1)
在.change()
功能中设置网址值。这将每次替换当前的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]);
});
});
顺便说一下,为了方便起见,这段代码假定每个filterControl
都有一个<select>
类。当然,您可以使用您喜欢的任何方法来选择它们。