Php 有没有更好的方法来跟踪使用hashtag的分页?
当用户单击浏览器中的后退按钮并相应地更改URL时,我使用hashchange事件来检测。有没有更好的分页方法?在用户单击我的分页控件后,我当前正在更改URL,如下所示:Php 有没有更好的方法来跟踪使用hashtag的分页?,php,javascript,jquery,pagination,Php,Javascript,Jquery,Pagination,当用户单击浏览器中的后退按钮并相应地更改URL时,我使用hashchange事件来检测。有没有更好的分页方法?在用户单击我的分页控件后,我当前正在更改URL,如下所示: $(".pager").click(function(){ var start = null; if ($.browser.msie) { start = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1);
$(".pager").click(function(){
var start = null;
if ($.browser.msie) {
start = $(this).attr('href').slice($(this).attr('href').indexOf('#')+1);
}
else {
start = $(this).attr('href').substr(1);
}
$('#start').val(start);
$.post("visits_results.php", $("#profile_form_id").serialize(),
function(data) {
$('#search_results').html(data);
location.href = "#visits=" + start;
});
return false;
});
检测后退按钮的javascript如下所示:
function myHashChangeCallback(hash) {
if (hash == "") {
$("#loadImage").show();
var no_cache = new Date().getTime();
$('#main').load("home.php?cache=" + no_cache, function () {
$("#loadImage").hide();
});
return false;
}
else {
// adding code to parse the hash URL and see what page I'm on...is there a better way?;
}
}
function hashCheck() {
var hash = window.location.hash;
if (hash != _hash) {
_hash = hash;
myHashChangeCallback(hash);
}
}
// Run some code on initial load
$.address.init(function(e) {
// Address and path details can be found in the event object
console.log(e);
});
// Handle hashtag/pushState change events
$.address.change(function(e) {
// Do more fancy stuff. Don't forget about the event object.
console.log(e);
});
// Setup jQuery address on some elements
$('a').address();
我目前计划检查每个标签和值,看看我应该加载什么页面,除非有更好更有效的方法
有什么想法或建议吗?这个插件做得很好。设置完成后,它将提供一系列逻辑导航事件,您可以将这些事件连接到。它还非常支持history.pushState()
,这在较新的浏览器中消除了对hashtag的需要,并且对那些不支持pushState的浏览器具有同样良好的回退支持
一个简单的实现如下所示:
function myHashChangeCallback(hash) {
if (hash == "") {
$("#loadImage").show();
var no_cache = new Date().getTime();
$('#main').load("home.php?cache=" + no_cache, function () {
$("#loadImage").hide();
});
return false;
}
else {
// adding code to parse the hash URL and see what page I'm on...is there a better way?;
}
}
function hashCheck() {
var hash = window.location.hash;
if (hash != _hash) {
_hash = hash;
myHashChangeCallback(hash);
}
}
// Run some code on initial load
$.address.init(function(e) {
// Address and path details can be found in the event object
console.log(e);
});
// Handle hashtag/pushState change events
$.address.change(function(e) {
// Do more fancy stuff. Don't forget about the event object.
console.log(e);
});
// Setup jQuery address on some elements
$('a').address();
要启用pushState()支持,请向脚本传递参数,如下所示:
我已经看过了,但它似乎有点难以实现。我担心我将需要替换所有当前的javascript代码…但我可能不得不这样做。事实上,网站上的示例非常糟糕。请查看上的源代码。您只需要调用三个方法。我会用一个例子更新我的答案。非常感谢你的例子,我会尝试一下。我的荣幸。如果你遇到任何麻烦,请告诉我。看起来它正在做我需要的事情。我仍然在使用location.href=“#visions=“+start;要使用onclick事件和address.change方法设置我的URL,我将获取所有信息!再次感谢您的帮助和示例!