当前位置: 首页 > 知识库问答 >
问题:

单击选项卡,选项卡将消失

谯德元
2023-03-14

在jQuery中创建选项卡。单击其他选项卡时,所有选项卡都将消失。我想不出解决办法

以下是无法正常工作的页面:http://www.sleepfullnights.com/products/sfn-537

这是另一个用它工作的人的JSFIDLE:http://jsfiddle.net/gravitybox/7pHg4/我已经复制并粘贴了其中的每个元素到页面中,问题仍然存在。

一个人指出,当点击标签时,有些东西给了标签css“display:none”,我找不到哪里可以修复它。

另外,有人还观察到,“在Chrome开发工具中,如果右键单击“元素”选项卡中的ul.tabs并选择“断开”

以下是我的jQuery代码:

     $(document).ready(function() {
    $('ul.tabs').each(function(){
      var active, content, links = $(this).find('a');
      active = links.first().addClass('active');
      content = $(active.attr('href'));
      links.not(':first').each(function () {
        $($(this).attr('href')).hide();
      });
      $(this).find('a').click(function(e){
        active.removeClass('active');
        content.hide();
        active = $(this);
        content = $($(this).attr('href'));
        active.addClass('active');
        content.show();
        return false;
      });
    });
  });

以及工作JSFIDLE中的代码:

    $(document).ready(function() {

$('ul.tabs').each(function(){
  var active, content, links = $(this).find('a');
  active = links.first().addClass('active');
  content = $(active.attr('href'));
  links.not(':first').each(function () {
    $($(this).attr('href')).hide();

  });
  $(this).find('a').click(function(e){
    active.removeClass('active');
    content.hide();
    active = $(this);
    content = $($(this).attr('href'));
    active.addClass('active');
    content.show();
    return false;
      alert('yep');
  });
});
});

任何帮助/指导都非常感谢。

共有3个答案

司徒高丽
2023-03-14

这肯定是ul获取display:none的问题。您可以尝试在单击处理程序中使用$('ul.tabs')覆盖它。css(“显示”、“块”)。由于页面上的脚本太多,很难判断问题来自何处。

方夜洛
2023-03-14

用于这些选项卡的代码比您需要的要复杂得多,我不确定是什么坏了。与其试图修复它,不如重新开始。这就是你想要的:

每次用户单击选项卡时,所有选项卡都会删除活动类,并且所有内容都会隐藏。然后,活动的单击选项卡被赋予active类,并显示其内容。这对用户来说应该是即时的。您需要在内容divs中添加一个类才能轻松完成此任务。我要添加选项卡内容

工作小提琴

<div class="tab-content" id="tab-1">
    ...Content...
</div>

<div class="tab-content" id="tab-2">
    ...Content...
</div>

<div class="tab-content" id="tab-3">
    ...Content...
</div>
$(document).ready(function() {

    $('.tabs li a').click(function(event){
        event.preventDefault();
        $('.tabs li a').removeClass('active');
        $(this).addClass('active');
        $('.tab-content').hide();
        $($(this).attr('href')).show();
    });

});
龚远
2023-03-14

我就是那个在Chrome开发工具中指出“如果你右键点击“元素”选项卡中的ul.tabs并选择“打开”的人

它在那里中断,因为该行隐藏了包含选项卡的ul

查看您网站的代码,您需要在第39行的app.js中更改以下内容。

$(contentLocation).show().addClass('active').siblings().hide().removeClass('active');

为此:

$(contentLocation).show().addClass('active').siblings('div').hide().removeClass('active');

您只想针对选定选项卡内容的div兄弟姐妹。现在,ul也是所选div的兄弟姐妹。如果没有'div'siblings()将选择它的所有兄弟并隐藏()它们(因此也隐藏了选项卡)。

优选地,我将向选项卡内容添加一个选项卡内容类,并使用兄弟姐妹('. tab内容')而不是兄弟姐妹('div')来更加具体。这样,如果您添加另一个恰好是兄弟姐妹的div,它就不会隐藏它。

 类似资料:
  • 使用JavaFX2.2,我有一个窗口,它主要由一个有4个选项卡的TabPane组成。用户可以更改任何选项卡中显示的数据,如果他们这样做了,我希望确保他们在保存/取消/更新数据之前不会更改该选项卡。特别是,我想确保他们不会选择不同的标签。如果他们试图退出或执行某个菜单项,我可以捕捉到,但我似乎找不到中断选项卡更改的方法。我可以捕捉到他们点击了一个新的选项卡(onSelectionChanged),并

  • 我有一个片段与片段寻呼机适配器实现表布局每个选项卡有一个回收器视图与一些项目(相同的回收器视图适配器为所有recylerview)通过实现OnItemClick侦听器点击每个项目调用一个活动,实现了一个视图寻呼机与片段StatePagerAdapter,以显示回收器视图项目基于滑动的表布局视图寻呼机显示上一个或下一个选项卡项目每个项目的数据存储在一个数组列表中。 一个片段和两个片段和…是相似的:

  • 我正在尝试在我的网站上做一个标签功能,我希望有那个标签响应。所以我做了这样的代码: null null 现在我有两样东西, > 首先,我希望在单击标题(伦敦、巴黎、东京)时关闭选项卡,然后在单击该标题时从该标题中删除活动类。 其次,我希望有两个标签在行的响应,第三个标签在第二行,然后单击打开被点击的标签,然后向下推第三个标签。 任何提示都会有帮助,提前谢谢

  • 当我像下面的例子一样点击选项卡2时,我如何将选项卡1 Neumorphic css翻译成选项卡2呢,就像从选项卡1滑到选项卡2一样? https://dribble.com/shots/10805627-neumorphic-tab

  • 两个tab <div class="ui-tab "> <ul class="ui-tab-nav ui-border-b "> <li class="current"><span>热门</span></li> <li><span>热门</span></li> </ul> <ul class="ui-tab-content" sty

  • 打开选项卡 打开新选项卡于 设置新的弹出窗口如何打开: 选项 描述 最后打开选项卡的窗口 在最后打开的窗口打开一个新的选项卡。 新窗口 打开一个新的窗口。 允许重复打开相同的对象 如果你想允许一个对象可打开多个实例,可勾选这个选项。 选项卡列样式 永远显示选项卡栏 打开窗口时显示标签栏。