为什么在jquery函数中没有正确更新Javascript堆栈?

时间:2014-04-09 11:45:56

标签: javascript jquery

我有一些jquery代码,允许用户返回"通过表格的分页页面。这个想法是用户可以转到第1页,然后是第6页,然后是第5页,然后点击"返回"按钮会将它们引导回第6页,然后是1.我使用堆栈实现此功能。这是代码:

<script>

var currentPager = 'pager1';
var pagerStack = [];

$(function() {
//display tag
    $(".pagelinks a, .sortable a").each(function(index) {
        var href = $(this).attr('href');
        $(this).attr('href', '#displayTable');
        var pagenum = $(this).text();
        $(this).attr('id', 'pager' + pagenum);

        $(this).click(function() {
            $("#reconForm").attr('action', href);
            $("#reconForm").submit();

            pagerStack.push(currentPager);
            currentPager = $(this).attr('id');
            console.log(pagerStack.length);

            return false;
        });

    });
});

function pageBack() {
    alert(pagerStack.length);
    //Do pagerStack.pop() here eventually 
}
</script>

我的控制台告诉我,只要&#34; .page链接a&#34;单击,推送currentPager,但大小始终为1。当调用pageBack()时,警报告诉我pagerStack的大小为0.似乎每次函数开始/结束时都会重新初始化该数组。为什么这样,有没有办法解决它?

提前致谢。

1 个答案:

答案 0 :(得分:0)

感谢Molle博士

实际上,正如您所建议的那样,在每个ajax提交中重新加载包含脚本的页面。我将我的javascript变量declrations移动到父jsp中,现在它似乎正在按预期工作。谢谢。