无法在被动事件侦听器中阻止默认值

新手上路,请多包涵

我正在使用 Framework7 可排序列表,它运行良好,只是在列表更改时它不会触发事件。

所以我正在尝试一些内置事件:

$('.sortable-handler').on('touchstart', function (e) {
    e.preventDefault();
    alert('touchstart');
});

$('.sortable-handler').on('touchmove', function (e) {
    e.preventDefault();
    console.log('touchmove');
});

$('.sortable-handler').on('touchcancel', function (e) {
    e.preventDefault();
    console.log('touchcancel');
});

$('.sortable-handler').mouseleave(function (e) {
    e.preventDefault();
    console.log('mouseleave');
});

..但我得到的只是:

由于目标,无法在被动事件侦听器中阻止默认值

被视为被动。看

https://www.chromestatus.com/features/5093566007214080

我应该寻找哪个事件来获取每种类型的更新列表?

原文由 eozzy 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 958
2 个回答

当用户在新位置释放当前排序元素时,要在 Framework7 中处理可排序列表,您可以使用以下代码:

 $$('li').on('sortable:sort',function(event){
 alert("From " + event.detail.startIndex + " to " + event.detail.newIndex);
 });

小提琴: https ://jsfiddle.net/0zf5w4y7/

原文由 Agus Sapurta Sijabat 发布,翻译遵循 CC BY-SA 3.0 许可协议

请参阅此 博客文章。如果您在每个 preventDefault touchstart 那么您还应该有一个 CSS 规则来禁用触摸滚动,例如

.sortable-handler {
  touch-action: none;
}

原文由 Rick Byers 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题