需要一些jquery选项卡插件的帮助

时间:2010-12-31 09:06:54

标签: jquery

我使用以下代码作为标签插件

//When page loads...
 $("#searchbox .tab_content").hide(); //Hide all content
 $("#searchbox ul.tabs li:first").addClass("active").show(); //Activate first tab
 $("#searchbox .tab_content:first").show(); //Show first tab content
//alert($("ul.tabs li:last").find("a").attr("href"));
 //On Click Event
 $("#searchbox ul.tabs li").click(function() {

  $("#searchbox ul.tabs li").removeClass("active"); //Remove any "active" class
  $(this).addClass("active"); //Add "active" class to selected tab
  $("#searchbox .tab_content").hide(); //Hide all tab content

  var activeTab = $(this).find("a").attr("href"); //Find the href attribute value to identify the active tab + content
  $(activeTab).fadeIn(); //Fade in the active ID content
  return false;
 });

我的html页面包含4个列表项作为菜单。当页面刷新时,它总是加载第一个元素内容,如代码中所示。每个li链接到具有各自形式的div。如果我在操作表单中调用相同的页面,我如何加载相应的内容。意味着如果我提交了搜索租赁表单,那么当页面刷新时,它应该显示搜索租用容器而不是li:first

1 个答案:

答案 0 :(得分:1)

您可以在搜索表单中添加一个隐藏字段,其中包含有关当前打开选项卡的信息,并在发布后使​​用该信息在li项目上设置正确的类。

像这样更改表单:

<form method="post">
  <input type="hidden" name="activetab" value="" />
  ...
</form>

然后像这样,你可以使用li元素的id来知道哪个标签是活动的:

$("#searchbox ul.tabs li").click(function() {
    $("input[name=activetab]").val($(this).attr("id"));
});

发布表单后,如果您使用PHP,可以这样:

foreach($tab_id_array as $tab_id) { ?>
<li class="<?= ($_POST["activetab"]==$tab_id) ? "active" : "" ?>"><?= $tabcontent ?></li>
<? } ?>