javascript - 拖放和 Bootstrap UI Accordion

标签 javascript jquery angularjs twitter-bootstrap accordion

我有这样的代码:

<div ui-tree>
    <ol ui-tree-nodes="" ng-model="policies">
      <li ng-repeat="item in policies" ui-tree-node>
        <div ui-tree-handle>
          <accordion>
            <accordion-group>
              <accordion-heading>
              {{item.Title}}
              <i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i></accordion-heading>
              {{item.Content}}                      
            <ol ui-tree-nodes="" ng-model="item.Options" data-nodrop>
              <li ng-repeat="subItem in item.Options" ui-tree-node>
                <div ui-tree-handle>
                    <accordion-group>
                      <accordion-heading>{{subItem.Title}}<i class="pull-right glyphicon" ng-class="{'glyphicon-chevron-down': status.open, 'glyphicon-chevron-right': !status.open}"></i></accordion-heading>
                      {{subItem.Content}}
                  </accordion-group>
                </div>
              </li>
            </ol>
            </accordion-group>
          </accordion>
        </div>
      </li>
    </ol>
  </div>

当我点击标题滚动 Accordion Bootstrap 的内容时,我得到处理拖放事件

我怎么能:

向 accordion-header 添加一些图标,借助它我可以拖放我的所有节点,当我点击标题时我的数据会像 Bootstrap 一样滚动吗?真的要处理太多事件吗?以及如何?

https://github.com/JimLiu/angular-ui-tree

http://angular-ui.github.io/bootstrap/

更新:

<script id="template/accordion/accordion-group.html" type="text/ng-template">
  <div class="panel panel-default">            
    <div class="panel-heading">
      <h4 href class="btn btn-success btn-xs accordion-toggle pull-left" data-nodrag ng-click="toggleOpen();"><i class="glyphicon" ng-class="{'glyphicon-chevron-right': isOpen, 'glyphicon-chevron-down': !isOpen}"></i></h4>
      <h4 class="panel-title">
        <a href accordion-transclude="heading"><span>{{heading}}</span></a>
      </h4>
    </div>
    <div class="panel-collapse" collapse="!isOpen">
      <div class="panel-body" ng-transclude></div>
    </div>
  </div>
</script>
  <div ui-tree="options" data-drag-delay="20">
    <ol ui-tree-nodes="" ng-model="articles">
      <li ng-repeat="item in articles" ui-tree-node>
        <div ui-tree-handle>
          <accordion close-others="false">
            <accordion-group>
              <accordion-heading>
              {{item.Title}}
              </accordion-heading>                      
              <div ng-bind-html="item.Content"></div>                     
            <ol ui-tree-nodes="" ng-model="item.Options">
              <li ng-repeat="subItem in item.Options " ui-tree-node>
                <div ui-tree-handle>
                  <accordion close-others="false">
                    <accordion-group>
                      <accordion-heading>{{subItem.Title}}
                      </accordion-heading>
                      <div ng-bind-html="subItem.Content"></div>
                    </accordion-group>
                  </accordion>
                </div>
              </li>
            </ol> 
            </accordion-group>                   
          </accordion>
        </div>
      </li>
    </ol>
  </div>

仅当我单击标题文本或正文文本时才能进行拖放操作(在面板标题上时不会触发任何内容) 打开 ng-click="toggleOpen();" 一切正常,只是拖放必须在整个元素上(光标是针对整个元素,但拖放只是用于元素文本)

如何使用范围?

最佳答案

换行<accordion-heading> <div> 中的内容

HTML Accordion 代码

      <accordion close-others="false">
        <accordion-group is-open="isopen">
          <accordion-heading ng-click="isopen=!isopen">
          <div>{{item.Title}}</div>
          </accordion-heading>                      
          <div ng-bind-html="item.Content"></div>                     
        <ol ui-tree-nodes="" ng-model="item.Options">
          <li ng-repeat="subItem in item.Options " ui-tree-node>
            <div ui-tree-handle>
              <accordion close-others="false">
                <accordion-group>
                  <accordion-heading>{{subItem.Title}}
                  </accordion-heading>
                  <div ng-bind-html="subItem.Content"></div>
                </accordion-group>
              </accordion>
            </div>
          </li>
        </ol> 
        </accordion-group>                   
      </accordion>

希望对您有所帮助。

关于javascript - 拖放和 Bootstrap UI Accordion ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27825770/

相关文章:

javascript - 如何在指令中使用模板来处理 `replaceWith` 指令元素

javascript - 尽管数据已排序,如何提高 Highcharts 的性能并避免错误 15?

javascript - 在 jQuery 中的 Javascript 中定义函数

html - 使用 css 和 jquery 展开表格代码

javascript - 在包含 html 的变量中选择一个元素

javascript - 在 Angular 中异步加载工厂中的坐标

javascript - Backbone.js 的工作原理图?

javascript - 如何让 Service Worker 从 API 缓存数据并在需要时更新缓存

javascript - 如何使用 Node 和 TypeScript 获取异步堆栈跟踪?

javascript - jQuery .click 不会触发跨越多个元素的用户选择事件