【问题标题】:Chevron Icon pointing up or down depending on accordion positionChevron 图标根据手风琴位置向上或向下指向
【发布时间】:2013-09-24 15:46:58
【问题描述】:

我有一个使用 jQuery UI 构建的手风琴。我需要向上或向下的 V 形图标,具体取决于该部分是打开还是关闭。问题是我的 jQuery。至少最初是这样。我看到两个人字形都在加载,一旦点击,人字形就不会改变。

jQuery

$(function() {

     $(".section a").click(function() {

          $(".chevron").removeClass("chevron").addClass("up");
    });
});

CSS

.chevron {
background: url("images/down.png") no-repeat;
}

.up {
background: url("images/up.png");
}

HTML

 <div class="section">
   <a href="#"><div class="tab active">
   <span class="chevron"></span><h3>Section 1</h3>
   </div></a> <!-- tab -->

【问题讨论】:

  • 如果可能,添加jsfiddle
  • 我很困惑,但我放在 jsfiddle 中的代码有工作 V 形。我猜这来自jquery UI。为什么我的本地工作副本上没有它们? jsfiddle.net/thomasp423/pcf5d

标签: javascript jquery jquery-ui jquery-ui-accordion


【解决方案1】:

您需要引用this,以便它切换您正在单击的元素(不是一次全部)。拥有$(this) 后,您可以使用.find 在链接中搜索人字形。

最后,您可以使用toggleClass 在类状态之间进行切换。这允许您重复单击链接并在类状态之间切换。

$(function() {
    //Add down to all .chevrons
    $(".section a .chevron").addClass('down'); 

    //Toggle up/down classes
    $(".section a").click(function() {
        var $chevron = $(this).find('.chevron');                
        $chevron.toggleClass("down up");
    });
});

然后对于 CSS,将类设置为正确的人字形图像:

.chevron.up { background-image('images/up.png'); }
.chevron.down { background-image('images/down.png'); }

【讨论】:

  • 如果我想要上下班切换怎么办。但从它开始。现在它把 up 放在跨度之外。
  • 我已经更新了答案中的代码。您可以使用$(".section a .chevron").addClass('down');在页面加载时将.down添加到所有这些
猜你喜欢
  • 1970-01-01
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 2016-01-28
  • 2019-09-08
  • 2011-05-26
  • 1970-01-01
  • 2019-08-03
相关资源
最近更新 更多