JQuery Accordion : Swap Bootstrap Icons

标签 jquery jquery-ui accordion

我正在尝试将 Accordion 集成到我的网络应用程序中,并且我想在单击标题时在 V 形向下和 V 形向上图标之间切换。现在,我所拥有的似乎只适用于所有其他 Accordion 实例(我有一页博客条目,其中每个条目都有评论,并且评论是可扩展的)。我做错了什么?

comments.html.erb

   <div class="userComments">
    <div class="accordion">
      <h5 class="icon-chevron-down"> Comments (<%=step.comment_threads.count%>)</h5>
      <div class="comment">  
        <div class="userIcon">
          <%= image_tag(current_user.avatar_url(:thumb), :class=>"commentAvatar img-polaroid")%>
        </div class="addComment">
           <%= semantic_form_for([@project, step, step.comment_threads.build]) do |f| %>
            <div class="field">
              <%= f.text_area :body %>
            </div>
        <div class="submit">
          <%= f.submit :comment, :class=> "btn btn-small btn-primary commentSubmit" %>
        </div>
        <% end %>

         <div class="clear"></div>
      <div class="stepComments">
        <% if step.comment_threads.count >0 %>
          <% step.comment_threads.each do |stepComment| %>
            <% if stepComment.body.length>0 %>
              <%= render :partial => 'comments', :locals => {:comment=> stepComment, :step=>step} %>
            <% end %>
          <% end %>
        <% end %>
      </div>
    </div>
      </div>
    </div>

comment.js

  (function($) { 

    $('.accordion').accordion({
      collapsible: true, 
      heightStyle: "content",
      active: false,
    });

    $('.accordion h5').hover(function(){
      $(this).css("color", "#0769AD");
    },
    function(){
      $(this).css("color", "#000");
    });

    $('.accordion h5').click(function(){
      console.log('switching');
      if($(this).hasClass("icon-chevron-down")){
        $(this).removeClass("icon-chevron-down");
        $(this).addClass("icon-chevron-up");
      }
      else{
        $(this).removeClass("icon-chevron-up");
        $(this).addClass("icon-chevron-down");
      }
    });

  })(jQuery);

enter image description here

最佳答案

这是我解决这个问题的方法:

    $('.accordion').accordion({
      collapsible: true, 
      heightStyle: "content",
      active: false,
      icons:{
        header: "icon-chevron-down",
        activeHeader: "icon-chevron-up"
      }
    });

然后我删除了 header 的类规范!

关于JQuery Accordion : Swap Bootstrap Icons,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16988224/

相关文章:

javascript - .load() 等 Ajax 函数从 HTML 中去除注释。我怎样才能保留评论?

javascript - 如何将数据集传递给对象

jquery 可排序 : The dropped sortable list item should have a class applied removing similar class in other items

在其他组件上可见的 jquery-UI 选项卡

css - 如何通过垂直线和元素符号按钮显示元素集

javascript - 使用 jquery 检索属性值

javascript - jQuery Ajax 请求失败,readyState :0 error

jquery - 关闭动画 Jquery Accordion

jQuery Accordion 仅在有子项时添加箭头

css - 更改 primefaces Accordion 图标