【发布时间】:2017-01-14 06:55:34
【问题描述】:
我有一个自定义的角树组件,在浏览器中看起来像这样:
+ Parent 1
+ Child 1-A
- Child 1-A-A
- Child 1-A-B
- Child 1-A-C
+ Child 1-B
+ Child 1-C
指令模板如下所示:
<ul >
<ers-tree-item ng-if="ctrl.parentItem"
ng-repeat="item in ctrl.parentItem.children"
item="item"
parent="ctrl"
level="ctrl.level"
collapse-icon="ctrl.collapseIcon"
expand-icon="ctrl.expandIcon"
item-renderer="ctrl.itemRenderer"
item-loader="ctrl.itemLoader"
lazy-options="ctrl.lazyOptions"
ng-disabled="ctrl.disabled"
>
</ers-tree-item>
</ul>
ers-tree-item 指令在列表中创建每个“li”元素,因此上面树中提到的每个父子节点基本上都是从下面的模板创建的:
<!-- ers-tree-item directive -->
<li draggable="{{treeController.treeDraggable && !item.data.disabled && !disabled}}">
<a href="javascript:void(0);"
tabindex="0"
draggable="false"
ng-class="{'selected': item.selected}"
ng-click="onItemClick()"
ng-disabled="item.data.disabled || disabled">
// within this element there is just the "+" or "-" icon
// as well as the label for each tree item (i.e. Parent 1)
</a>
</li>
如何仅在设置为禁用的 li 元素上禁用单击事件。因此,如果树节点被禁用(例如 Child 1-A),我想删除该节点上的单击事件,所以不能拖吗?基本上每个树节点都相同,我无法弄清楚如何仅在那些被禁用的节点上禁用点击事件......
我目前可以在禁用的元素上禁用拖动,但我遇到的问题是,如果它的一个被禁用的子节点试图被拖动,它会拖动整个“ul”元素。所以我认为只是禁用点击禁用的树节点可能是最好的..
【问题讨论】:
标签: javascript jquery html css angularjs