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