ole*_*sia 11 angularjs angular-ui-tree
我目前正在使用angular-ui-tree库,我正在尝试实现以下行为:
当用户只需单击"可拖动节点"时,它会触发ng-click功能,如果用户单击并开始拖动,则忽略ng-click并开始常规拖放操作.
我有以下html结构:
<div ui-tree="rootTree" ng-controller="Controller">
<div ui-tree-nodes="" ng-model="nodes">
<div ng-repeat="node in nodes" ui-tree-node="" ng-click="selectNode(node)" >
<div ui-tree-handle="">
...
</div>
</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
目前的行为是'mousedown'上的drag-n-drop立即开始,并且没有办法区分'click'和尝试开始拖动
这是触发节点uiTreeNode.js拖放的库代码
var bindDrag = function() {
element.bind('touchstart mousedown', function (e) {
if (!scope.$treeScope.multiSelect) {
dragDelaying = true;
dragStarted = false;
dragTimer = $timeout(function() {
dragStartEvent(e);
dragDelaying = false;
}, scope.$treeScope.dragDelay);
} else {
toggleSelect(e);
}
});
element.bind('touchend touchcancel mouseup', function() {
$timeout.cancel(dragTimer);
});
};
Run Code Online (Sandbox Code Playgroud)
小智 10
我只是遇到了同样的问题,我通过将数据拖动延迟增加到100来解决它,尝试:
ui-tree="rootTree" ng-controller="Controller" data-drag-delay="100"
| 归档时间: |
|
| 查看次数: |
5639 次 |
| 最近记录: |