Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 有没有更好的方法来跟踪使用hashtag的分页?_Php_Javascript_Jquery_Pagination - Fatal编程技术网

Php 有没有更好的方法来跟踪使用hashtag的分页?

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);

当用户单击浏览器中的后退按钮并相应地更改URL时,我使用hashchange事件来检测。有没有更好的分页方法?在用户单击我的分页控件后,我当前正在更改URL,如下所示:

$(".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,我将获取所有信息!再次感谢您的帮助和示例!