gpt4 book ai didi

javascript - 防止 Angular 自定义指令模板中禁用的树节点上的单击事件

转载 作者:行者123 更新时间:2023-11-28 05:07:13 25 4
gpt4 key购买 nike

我有一个自定义的 Angular 树组件,在浏览器中如下所示:

+ 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”元素。所以我认为禁用单击已禁用的树节点可能是最好的..

最佳答案

你可以使用一些CSS:

input.myClass.disabled {
pointer-events : none;
}

关于javascript - 防止 Angular 自定义指令模板中禁用的树节点上的单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com