我在ng拖动元素上点击了ng,当我开始移动元素时,一切都很好,但当我停止它时,该元素激活了我的ng点击,我如何避免那次ng点击?
<div ng-click="unselectImage(image);" ng-drag="true" ng-drag-data="'multipleItems'" ng-center-anchor="true" data-allow-transform="false" ng-drag-success="selectImage(image);"></div>
我正在使用ngDraggable。我尝试使用ng-drag-success
,但没有成功。
我做了一个指令(alClick(,它只是点击,但如果按下持续时间默认超过750ms,则取消任何点击。因此,拖动或滑动时不会触发点击或点击事件。
<div al-click="unselectImage(image);" ng-drag="true" ng-drag-data="'multipleItems'" ng-center-anchor="true" data-allow-transform="false" ng-drag-success="selectImage(image);"></div>
我在David Zemens的帮助下做了什么。我想我可以用
$rootScope.$on('draggable:start', function (data) {
isDragging=true;
});
在我的ng点击功能中,我添加了这样的东西:
$scope.unselectImage = function (image) {
if(isDragging) isDragging=false;
else{
// do the magic
}
}
一般来说,它会起作用。当拖动开始时,它会广播它正在开始,当拖动结束时,它只会简单地说拖动结束。