代码之家  ›  专栏  ›  技术社区  ›  Chud37

激活引导折叠时向下切换内联V形

  •  2
  • Chud37  · 技术社区  · 6 年前

    我不确定标题是否有意义,但从PHP中,我正在循环回显这个HTML:

    <a href='#' data-toggle='collapse' data-target='#myid'>
      <span class='fa fa-caret-down'></span>
    </a>
    <div id='myid' class='collapse'>Some Content</div>
    

    我想要 fa-caret-down 改为 fa-caret-up 单击时,反之亦然我希望代码是内联的,这样我就可以在这个实例中输出它我该怎么做?

    2 回复  |  直到 6 年前
        1
  •  2
  •   marc_s    6 年前

    你可以添加 onClick 将内联事件附加到锚点并附加一个在类之间切换的函数,如下所示:

    function toggleClass(self) {
      $('span', self).toggleClass('fa-caret-down fa-caret-up');
    }
    <link href="http://netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    
    <a href='#' data-toggle='collapse' data-target='#myid' onClick="toggleClass(this)">
      <span class='fa fa-caret-down'></span>
    </a>
    <div id='myid' class='collapse'>Some Content</div>

    建议

    最好在所有锚中使用公共类,并将单击事件附加到此公共类,例如:

    <a href='#' data-toggle='collapse' data-target='#myid' class="icon_toggle">
        <span class='fa fa-caret-down'></span>
    </a>
    <div id='myid' class='collapse'>Some Content</div>
    

    在js代码中,应该附加click事件,该事件使用jQuery方法在两个类之间切换 toogleClass() 比如:

    $('body').on('click', '.icon_toggle', function(){
         $('span', this).toggleClass('fa-caret-down fa-caret-up');
    });
    
        2
  •  0
  •   Lasitha    6 年前

    如果有人有兴趣在不使用外部库的情况下使用vanilla js来处理这个问题。

    var carets = document.querySelectorAll('.up-down');
    
    carets.forEach(function(caret){
      caret.addEventListener("click", function(){
         this.getElementsByTagName('span')[0].classList.toggle('fa-caret-down');
         this.getElementsByTagName('span')[0].classList.toggle('fa-caret-up');
      });
    })
    <link href="http://netdna.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" rel="stylesheet" />
    <a href='#' data-toggle='collapse' data-target='#myid' class="up-down">
      <span class='fa fa-caret-down'></span>
    </a>
    
    <div id='myid' class='collapse'>Some Content</div>