1

我正在尝试构建一个可拖动列表,但拖动事件以某种方式干扰了移动设备上的滚动事件(在 Windows 平板电脑上测试,在台式电脑上工作正常)。我可以滚动或拖动,但不能同时滚动。如果我将“-ms-touch-action”和“touch-action”设置为none,我可以滚动,如果我不设置,我可以拖动。

触摸打孔也包括在内。我认为,解决此问题的最佳方法是通过按住项目一两秒钟来触发拖动事件,但我无法让它工作。

将列表的溢出设置为在开始时可见并在停止时返回“”很重要,因为我必须将项目拖出 div 边界并且我的应用程序不允许我以任何其他方式执行此操作.

您可以在这里测试代码:http: //jsfiddle.net/LQuyr/344/

希望你们能帮助我。谢谢。

// draggable
$('#sortable li').draggable({
  scroll: false,
  helper: 'clone',
  start: function(e, ui) {
    $('#sortable').css('overflow', 'visible');
  },
  stop: function(e, ui) {
    $('#sortable').css('overflow', '');
  }
});
4

1 回答 1

0

也许延迟选项是您正在寻找的...

$('#sortable li').draggable({
      delay: 300,
      scroll: false,
      helper: 'clone',
      start: function(e, ui) {
        $('#sortable').css('overflow', 'visible');
      },
      stop: function(e, ui) {
        $('#sortable').css('overflow', '');
      }
    });
于 2017-05-22T18:56:25.803 回答