Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Javascript jQuery Mobile:data rel=“back”在重新加载页面后无法正常工作_Javascript_Jquery_Jquery Mobile - Fatal编程技术网

Javascript jQuery Mobile:data rel=“back”在重新加载页面后无法正常工作

Javascript jQuery Mobile:data rel=“back”在重新加载页面后无法正常工作,javascript,jquery,jquery-mobile,Javascript,Jquery,Jquery Mobile,在我的jQuery移动页面上,我有两个页面:页面A和B。页面A包含一个选项卡框容器。每个框包含一个不同的文本,并带有指向B页的链接 A页: B页: 我的问题是: 在A页上,我选择第二个选项卡,然后转到B页,我希望在用户重新加载B页后,通过data rel=back按钮返回A页时,第二个选项卡仍然可见。但是,在重新加载B页后,当用户单击back按钮并返回A页时,第二个选项卡不再设置为可见,而是第一个选项卡 我如何在jQuery Mobile中实现在重新加载后从B页开始时记住我在A页上的选项卡选择!

在我的jQuery移动页面上,我有两个页面:页面A和B。页面A包含一个选项卡框容器。每个框包含一个不同的文本,并带有指向B页的链接

A页:

B页:

我的问题是:

在A页上,我选择第二个选项卡,然后转到B页,我希望在用户重新加载B页后,通过data rel=back按钮返回A页时,第二个选项卡仍然可见。但是,在重新加载B页后,当用户单击back按钮并返回A页时,第二个选项卡不再设置为可见,而是第一个选项卡


我如何在jQuery Mobile中实现在重新加载后从B页开始时记住我在A页上的选项卡选择!用户返回到A页

您可以将dom缓存设置为true,以不重新加载页面:

<div data-dom-cache="true" data-role="page">
    ...
</div>
另一种方式:

在链接中添加一个函数,如:

<a href="#" class="ui-btn" onclick="switch_page('page_b','page_a');">back</a>

<script>
function switch_page(page_current, page_target){
    $('#'+page_current).hide();
    $('#'+page_target).show();
}
</script>

您可以将dom缓存设置为true,以不重新加载页面:

<div data-dom-cache="true" data-role="page">
    ...
</div>
另一种方式:

在链接中添加一个函数,如:

<a href="#" class="ui-btn" onclick="switch_page('page_b','page_a');">back</a>

<script>
function switch_page(page_current, page_target){
    $('#'+page_current).hide();
    $('#'+page_target).show();
}
</script>
您可以使用保存当前选定的选项卡,并在重新加载pageA时重新加载:

$(document).on("pagecreate","#pageA", function(){ 

    var savedTab = sessionStorage.getItem('selTab');
    if ($('#' + savedTab).length == 1){
        $('.testtab').hide();
        $('#' + savedTab).show();        
    }

    $('#testtab-con li a').on('click', function() {
        var targetTab = $(this).attr('title');
        sessionStorage.setItem('selTab', targetTab);

        $('.testtab').hide();
        $('#' + targetTab).show();
    });

});
如果要在会话之间重新加载同一选项卡,可以使用localStorage而不是sessionStorage。

可以使用保存当前选定的选项卡,并在重新加载pageA时重新加载:

$(document).on("pagecreate","#pageA", function(){ 

    var savedTab = sessionStorage.getItem('selTab');
    if ($('#' + savedTab).length == 1){
        $('.testtab').hide();
        $('#' + savedTab).show();        
    }

    $('#testtab-con li a').on('click', function() {
        var targetTab = $(this).attr('title');
        sessionStorage.setItem('selTab', targetTab);

        $('.testtab').hide();
        $('#' + targetTab).show();
    });

});
如果要在会话之间重新加载相同的选项卡,可以使用localStorage而不是sessionStorage