管理 parent 切换案例

Manage the parent toggle case

我使用手风琴构建了一个结构 parent 和 child。 我的观点结构如下所示。当我点击任何 child 所以我克隆 parent,然后将 child 元素移到右侧。

parent1           
 child1
 child2
 child3
parent2
 child1
 child2

假设我点击 child1 那么

Left-hand side                         Right Hand Side
parent1                                parent1                                                                        
                                        child1
 child2
 child3
parent2
 child1
 child2

我为什么要克隆?因为我希望 parent 应该在 left-hand 一侧。我只将 child 元素移动到 right-hand 一侧。 单击时,手风琴提供可折叠和展开功能。就我而言,我已将该功能添加到我的 parent。每当用户单击 parent 时,child 元素就会展开。如果再次单击 parent 它将崩溃。

我的问题是 当我点击假设 parent1 时它会展开但是在 right-hand 我正在克隆 parent,它也会得到 expand 。此外,如果我在 left-hand 侧折叠我的 parent,它会影响 right-hand 侧 parent。所以我想区分left-hand边和right-hand边parent。但问题是 accordion 只提供 active class 而已。那么谁能给我一些解决这个问题的方向

<dl id="available_fields_container" class="accordion list_container ui-sortable active" data-accordion="one">
  <dd class="accordion-navigation active" id="data_download_fields">
    <a href="#data_download_fields">
      <b>FootBall Fields</b>
      <span class="collapse-symbol"></span>
    </a>
    <span class="select-group" data-fields="#data_download_fields">Select all</span>
    <div id="data_download_fields" class="content active" data-group="FootBall Fields">

      <div class="field_items"  data-index="4" data-group="FootBall Fields">
        Andrew
        <span class="plus-icon action-icon">+</span>
        <i class="icon-cross2 action-icon"></i>
      </div>
      <div class="field_items"  data-index="5" data-group="FootBall Fields">
        Sam
        <span class="plus-icon action-icon">+</span>
        <i class="icon-cross2 action-icon"></i>
      </div>

    </div>
  </dd>

    <dd class="accordion-navigation " id="data_download_hockey_fields">
      <a href="#data_download_hockey_fields">
        <b>hockey Fields</b>
        <span class="collapse-symbol"></span>
      </a>
      <span class="select-group" data-fields="#data_download_hockey_fields">Select all</span>
      <div id="data_download_hockey_fields" class="content " data-group="hockey Fields">
          <div class="field_items"  data-index="0" data-group="hockey Fields">
  jason
    <span class="plus-icon action-icon">+</span>
    <i class="icon-cross2 action-icon"></i>
  </div>
  <div class="field_items"  data-index="1" data-group="hockey Fields">
  Jane
    <span class="plus-icon action-icon">+</span>
    <i class="icon-cross2 action-icon"></i>
  </div>

      </div>
    </dd>

</dl>

您可以覆盖 accordion 提供的默认切换功能

$(document).foundation({
    accordion: {
      content_class: false,
      active_class: false
    },
  });

现在您只需要在父级

上添加和删除一个class
$( document ).on('click','.field_items' , function() {
    if($(this).parent().hasClass('active')){
      $(this).parent().removeClass( "active" )
      $(this).parent().parent().removeClass("active")
    }
  });

  $( document ).on('click','#available_fields_container > dd.accordion-navigation' , function() {
    if($(this).hasClass("active")){
      $(this).removeClass( "active" )
      $(this).find('.content').removeClass('active')
    }else{
      $(this).addClass( "active")
      $(this).find('.content').addClass('active')
    }
  });