1

在我的页面上,我正在使用您的 angular-dragdrop 处理小部件的拖放。我正在争取的行为与在 iOS 上重新排列应用程序相同,按住以进入拖动模式,一旦进入该模式,小部件就会变得可拖动。

为此,我创建了一个自定义 ng-mousedown,它使用 $timeout 来触发其余的小部件变得可拖动。$timeout 回调还应该以编程方式将当前对象附加到光标,但我似乎无法从该方法内部启动拖动。我尝试了标准的 jQuery UI 可拖动调用:$("#widget" + id ).trigger("mousedown.draggable")

我将如何使用 angular-dragdrop 来做到这一点?

4

1 回答 1

1

I solved this with $("#widgetDraggable" + index).trigger(event); as in:

<div class="drag" ng-model="widgets"
     jqyoui-draggable="{ index: {{$index}} }" 
     data-item="{{item}}" id="{{ 'widgetDraggable' + $index }}"
     ng-mousedown="mouseDown( $event, this, $index, item);">
 --Widget Template--
</div>

and

$scope.mouseDown = function (event, item, index, element) {
  $scope.dragTimeout = $timeout(function () {
    $scope.pickUpWidget(event,item, index, element);        
  }, 1000);
};

$scope.pickUpWidget = function (event, item, index, element){
  item.floating = true;
  setAllWidgetsToDrag(true);
  // The line that threw me, seems easy enough:
  $("#widgetDraggable"+index).trigger(event); 
}

But I'd still be interested in a less jQuery heavy solution. Just out of curiosity. I'm even offering a $25 bounty: http://www.codersclan.net/ticket/127

于 2013-11-13T00:31:52.363 回答