基于网页编辑复选框
我一直在努力几个小时,听起来很简单。 我有一个复选框列表,如果复选框被选中,页面URL将会改变(保存一个过滤器选项,所以你可以共享URL到过滤器)。除了一点,当用户想要回去时,它完美地工作。复选框应该取消选中。基于网页编辑复选框
使用jQuery
setBoxes()是函数;
我想:
function pageLoad() {
setBoxes();
}
而且
$(document).ready(function(){
setBoxes();
}
我也加入
window.onunload = function(){};
但是这些解决方案的工作(功能不运行,我检查) 。
之后,我想我可以做到这一点与PHP(获取网址到一个数组,如果在数组中回声检查),但PHP不会再次运行(我猜它的兑现)。
有没有我可以尝试的选择,因为我真的不能解决这个简单的问题。
因为我的代码非常大我做了一个很小的例子http://jsfiddle.net/yzoztp05/1/的情况,更新jsfiddle中的url被阻塞,所以它不能完全工作。
为了使情况更加清晰,我制作了一个视频https://www.youtube.com/watch?v=jaSc1fmaJD4&feature=youtu.be。
代码设置我的复选框
//convert the url to array
function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}
// Set the checkboxes to checked if they are in the array
function setBoxes()
{
var prijsUrl = getQueryVariable("prijs");
// first set all checkboxes on unchecked
$('.prijsFilterBox').prop('checked', false);
alert("Loaded");
if(prijsUrl != false)
{
var res = prijsUrl.split("-");
for(var i = 0; i < res.length; i++)
{
$('.prijsFilterBox[value='+res[i]+']').prop('checked', true);
console.log("prijs = "+res[i]);
}
}
else
{
console.log("prijs = null");
}
}
它的工作原理,如果我刷新页面,但它不会当用户按下后退按钮上运行。如果它不能在页面上运行JavaScript,我将尝试使用php创建不同的脚本。
TLDR 如何在页面后台(所有浏览器)上运行jquery函数?
它有可能(我认为有很多人使用这种方式)拥有timeOut函数,每500ms调用一次,检查URL是否发生了变化,但不是使用'?'使用散列'#',所以用户总是在同一页面上,你可以捕获URL更改。
如果你需要坚持'?' ,也许你可以用window.onbeforeunload函数做点什么。
最终使用#散列作品很好谢谢 – 2014-09-30 14:10:56
请添加一些代码来说明您的问题 – Steve 2014-09-28 19:59:42
即时制作视频,将很快添加 – 2014-09-28 20:18:36
视频没有帮助,'setBoxes()'的代码在哪里?它没有做什么? – charlietfl 2014-09-28 20:34:34