angular ui-sortable:在Firefox中停止点击事件

时间:2016-01-26 14:40:17

标签: angularjs firefox angular-ui-sortable

我使用angular ui-sortable通过拖放订购商品。正在排序的项目也附加了一个点击事件。在firefox中,丢弃其中一个项会触发click事件。在我测试的所有其他浏览器中,它没有。

Here's一个简单的例子(检查控制台日志):

HTML

connection

CSS

<div ng-app="app" ng-controller="ctrl as vm">
  <div ui-sortable="vm.sortableOptions" ng-model="vm.items">
    <div ng-repeat="item in vm.items">
      <a href ng-click="vm.log()">
        <div class="box"></div>
      </a>
    </div>
  </div>
</div>

JS

.box {
  width: 100px;
  height: 100px;
  background: #ff0000;
  margin: 8px;
}

我希望这不会发生。调用Event.preventDefault()不起作用,因为我希望它(可能是因为它是一个有角度的点击事件)。

我当然可以在停止回调中设置某种标志(它似乎总是在点击处理程序之前触发)但是我更喜欢更清洁的解决方案,因为这可能会让人有点难以跟踪。 / p>

1 个答案:

答案 0 :(得分:6)

使用:

vm.sortableOptions = {
    helper: 'clone'
};

它告诉模块使用克隆进行拖动,这也会禁用所有触发的事件。我在Firefox中查看过它完美无缺。