Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 重新加载页面时使选项卡保持不变_Php_Javascript_Jquery_Html - Fatal编程技术网

Php 重新加载页面时使选项卡保持不变

Php 重新加载页面时使选项卡保持不变,php,javascript,jquery,html,Php,Javascript,Jquery,Html,我试图修改Gaya Design的选项卡式内容(),使当前选项卡在页面重新加载时保持不变,但在单击新选项卡时更改。我已经对它做了一些修改,通过使用PHPGET变量可以更改默认选项卡。可以查看我正在处理的页面的当前状态 这是我可能的情况。如果你点击了上面的链接,你会看到我正在开发一个简单的PHP购物车。现在,当用户单击添加链接时,它必须重新加载页面,当它这样做时,它会重置选项卡。所以,我认为这应该很容易用一个cookie来解决,只要点击一个新标签,cookie就会更新……我只是不太确定该怎么做。任

我试图修改Gaya Design的选项卡式内容(),使当前选项卡在页面重新加载时保持不变,但在单击新选项卡时更改。我已经对它做了一些修改,通过使用
PHP
GET
变量可以更改默认选项卡。可以查看我正在处理的页面的当前状态

这是我可能的情况。如果你点击了上面的链接,你会看到我正在开发一个简单的PHP购物车。现在,当用户单击添加链接时,它必须重新加载页面,当它这样做时,它会重置选项卡。所以,我认为这应该很容易用一个cookie来解决,只要点击一个新标签,cookie就会更新……我只是不太确定该怎么做。任何想法、建议或建议都将不胜感激

以下是我当前的JS:

var TabbedContent = {
init: function() {  
    $(".category").click(function() {
        var background = $(this).parent().find(".selected");
        $(background).stop().animate({
            left: $(this).position()['left']
        }, {
            duration: 350
        });
        TabbedContent.slideContent($(this));
    });
},
slideContent: function(obj) {
    var margin = $(obj).parent().parent().find(".sliderContainer").width();
    margin = margin * ($(obj).prevAll().size() - 1);
    margin = margin * -1;

    $(obj).parent().parent().find(".displayContent").stop().animate({
        marginLeft: margin + "px"
    }, {
        duration: 1
    });
},
gotab: function( obj ) {
    var background = $(obj).parent().find(".selected");
    $(background).stop().animate({
        left: $(obj).position()['left']
        }, {
            duration: 1
        });
        TabbedContent.slideContent( $(obj) );
    }
}
$(document).ready(function() {
    TabbedContent.init();
});
以下是选项卡链接到时的初始化方式:

<?php
// Load a specific tab if required
if(isset($_GET['tab'])) {
    // Array storing possible tab IDs
    $tabChoices = array('productsTab', 'specsTab', 'brochuresTab', 'bannersTab', 'kitsTab', 'displaysTab');
    $tab = '';
    if(in_array($_GET['tab'], $tabChoices)) $tab = $_GET['tab'];
    // Default to productsTab if not in array list
    else $tab = 'productsTab';
    // JS to actually do the switch
    echo '<script>$(document).ready(function() {TabbedContent.gotab($("#' . $tab . '"))});</script>';
}
?>

通过内联脚本编写解决方案,您将自己陷入困境。您应该始终只有一个$(文档)。准备就绪。。。调用整个产品,以避免代码中与订单相关的爆炸,并有一个清晰的入口点

也就是说,你就快到了。指定一个值,而不是调用函数

echo "<script>var selectedTab=$tab;</script>"
echo“var selectedTab=$tab
然后在初始化函数期间,使用该值。我的例子是在全球范围内。如果尝试将竞争条件分配给命名空间,则可能存在竞争条件。在这种情况下,请尝试将该脚本放在页面底部


还有一个建议,让一个且只有一个函数处理对该对象的所有动画调用。

您可以使用哈希,而不是使用get/post参数;在选项卡中创建如下链接:

<a class="tab_item" href="#one_go" id="one">
var gototab = document.location.hash.replace('_go',"")
if(gototab){
    $(gototab).each(function(){ 
        var pos = $(this).prevAll(".tab_item").length,
            left = pos * $(this).outerWidth(),
            margin = pos * $(this).parent().parent().find(".slide_content").width() * -1;
        $(this).parent().find('.moving_bg').css('left',left)
        $(this).parent().parent().find(".tabslider").css('margin-left',margin)
    })
}