0
私はリンクが付いたドラッグ可能なパネルをいくつか持っています。私はそれらをドラッグするときにクリックイベントを停止したい。私がタイルを落とすたびに、それはアドレスに行きます。私はngDraggable.jsを使用します。 e.preventDefault()とe.stopPropagation()を使用しようとしましたが、運はありませんでした。ngDraggableの角度jでクリックイベントを停止するにはどうすればよいですか?
angular.module('ExampleApp', ['ngDraggable']).
controller('MainCtrl', function ($scope) {
$scope.draggableObjects = [
{name: 'one'},
{name: 'two'},
{name: 'three'}
];
$scope.onDropComplete = function (index, obj, evt) {
var otherObj = $scope.draggableObjects[index];
var otherIndex = $scope.draggableObjects.indexOf(obj);
$scope.draggableObjects[index] = obj;
$scope.draggableObjects[otherIndex] = otherObj;
evt.stopPropagation();
evt.preventDefault();
}
});
HTML
<div class="row text-center" ng-controller="MainCtrl">
<ul class="draglist">
<li ng-repeat="obj in draggableObjects" ng-drop="true" ng-drop-success="onDropComplete($index, $data,$event)">
<div ng-drag="true" ng-drag-data="obj" ng-class="obj.name">
{{obj.name}}
</div>
</li>
</ul>
</div>
は、念のためにNGクリックでevent.preventDefaultとするevent.stopPropagationを追加します。右クリックしますか? –
ありがとうRodrigo。あなたは答えを示唆した。タイルのクリックイベントを止めようとしていましたが、リンクではありません。今度はng-clickをアンカータグに設定し、Angularではe.PreventDefault()を実行して動作します。 – Octtavius
素晴らしいです!回答を追加しました。正しいものとして受け入れてください。 –