【问题标题】:My code opens all accordions for the script我的代码打开脚本的所有手风琴
【发布时间】:2016-12-05 06:09:13
【问题描述】:

对于这段代码,我的意思是打开一个手风琴并关闭其余的手风琴,但是当我第一次单击任何东西时,它会打开所有手风琴。随后它只打开正确的一个。

function cloz(a) {
  if (a == 1) {
    $("#myaccordion1").collapse('show');
    $("#myaccordion2").collapse('hide');
    $("#myaccordion3").collapse('hide');
    $("#myaccordion4").collapse('hide');
    $("#myaccordion5").collapse('hide');
    $("#myaccordion6").collapse('hide');
  }
  if (a == 2) {
    $("#myaccordion1").collapse('hide');
    $("#myaccordion2").collapse('show');
    $("#myaccordion3").collapse('hide');
    $("#myaccordion4").collapse('hide');
    $("#myaccordion5").collapse('hide');
    $("#myaccordion6").collapse('hide');
  }
  if (a == 3) {
    $("#myaccordion1").collapse('hide');
    $("#myaccordion2").collapse('hide');
    $("#myaccordion3").collapse('show');
    $("#myaccordion4").collapse('hide');
    $("#myaccordion5").collapse('hide');
    $("#myaccordion6").collapse('hide');
  }

【问题讨论】:

  • 如果我点击 cloz(1) 它第一次显示 1、2 和 3
  • 你真的应该使用一个类来选择所有这些元素,然后通过它的索引找到你想要的那个。这样您就可以在一行中完成上述所有代码。

标签: jquery twitter-bootstrap-3 collapse bootstrap-accordion


【解决方案1】:

我认为您可以稍微简化代码。首先,如果可以的话,为所有手风琴使用一个类。然后你可以这样做:

function cloz(a) {
    $('.accordion').collapse('hide');
    $('.accordion').eq(a).collapse('show');
}

因此,您首先关闭所有手风琴,然后打开您想要的手风琴。 .eq(n) 函数选择元素列表中的第 n 个元素。

【讨论】:

  • 不错的答案,虽然它可能是单行来保存访问 DOM 两次 - $('.accordion').collapse('hide').eq(a).collapse('show');
猜你喜欢
  • 1970-01-01
  • 2015-04-04
  • 1970-01-01
  • 1970-01-01
  • 2013-02-06
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
  • 2021-04-30
相关资源
最近更新 更多