Javascript 单击选项卡时,为什么不在每次单击时切换?

Javascript 单击选项卡时,为什么不在每次单击时切换?,javascript,jquery,html,css,twitter-bootstrap-3,Javascript,Jquery,Html,Css,Twitter Bootstrap 3,单击选项卡时,手风琴会隐藏和显示,但不是每次单击都会显示。看 如果您将$this.clickfunction{移动到$.nav选项卡>li.clickfunction{之外,并使用jQuery.on函数来处理活动li,我认为您将获得所需的结果: // Update: Use a differenet onclick for the active and the // non-active, and force a .show() $(".nav-tabs").on('click','li:not

单击选项卡时,手风琴会隐藏和显示,但不是每次单击都会显示。看

如果您将$this.clickfunction{移动到$.nav选项卡>li.clickfunction{之外,并使用jQuery.on函数来处理活动li,我认为您将获得所需的结果:

// Update: Use a differenet onclick for the active and the
// non-active, and force a .show()
$(".nav-tabs").on('click','li:not(.active)',function() {
    $(NewContent).appendTo($(this));
    $(NewContent).show();
});
$(".nav-tabs").on('click','li.active',function() {
    $(NewContent).toggle();
});
查看更新的功能性小提琴:

代码不起作用的原因:

从本质上讲,按照您的操作方式,每次单击li时都会添加一个.click事件。当您添加了奇数次的单击代码时,您的代码会按预期工作,但当您的代码为偶数时,它会打开/关闭,使人产生一种错觉,以为什么也没有发生


检查这把小提琴并打开你的控制台以更好地理解其原理:

看起来你在试图模拟手风琴?@Jonathan-如果在较小的屏幕上观看,我使用引导选项卡标记来模拟手风琴。因此需要使用选项卡标记,而不是相反。你是对的“$this.clickfunction”{不需要。您所做的是正确的,尽管我不认为我们可以使用。在单击选项卡时切换,它仍然不会显示内容。另外,如果您不介意的话……默认情况下如何隐藏第一个选项卡?太棒了!默认情况下隐藏第一个选项卡:$NewContent.appendTo.nav-tabs li.active.hide;非常感谢@jonathan!have lea我也从中得到了一些信息!仅供参考。隐藏;在移动电话上滚动时,似乎正在折叠选项卡内容部分。有什么解决方法吗?
// Update: Use a differenet onclick for the active and the
// non-active, and force a .show()
$(".nav-tabs").on('click','li:not(.active)',function() {
    $(NewContent).appendTo($(this));
    $(NewContent).show();
});
$(".nav-tabs").on('click','li.active',function() {
    $(NewContent).toggle();
});