1

私のページでは、angular-dragdrop を使用してウィジェットのドラッグ アンド ドロップを処理しています。私が目指している動作は、iOS でアプリを並べ替えるのと同じです。長押ししてドラッグ モードに入ります。モードに入ると、ウィジェットがドラッグ可能になります。

これを行うために、$timeout を使用して残りのウィジェットをドラッグ可能にするカスタム ng-mousedown を作成しました。$timeout コールバックは、プログラムによって現在のオブジェクトをカーソルにアタッチする必要もありますが、このメソッド内からドラッグを開始できないようです。標準のjQuery UIのドラッグ可能な呼び出しを試しました:$("#widget" + id ).trigger("mousedown.draggable")

angular-dragdrop を使用してこれを行うにはどうすればよいですか?

4

1 に答える 1

1

私はこれを次のように解決し$("#widgetDraggable" + index).trigger(event);ました:

<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>

$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); 
}

しかし、jQuery をあまり使わないソリューションにも興味があります。単なる好奇心から。$25 の報奨金も提供しています: http://www.codersclan.net/ticket/127

于 2013-11-13T00:31:52.363 に答える