无法阻止被动事件侦听器内的默认
我正在使用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
我应该寻找哪种事件来获取每种类型的更新列表?
要在用户释放当前在新位置排序元素时处理Framework7中的可排序列表,您可以使用以下代码:
$$('li').on('sortable:sort',function(event){ alert("From " + event.detail.startIndex + " to " + event.detail.newIndex); });
小提琴: https : //jsfiddle.net/0zf5w4y7/
看到这篇博文 。 如果你在每个touchstart
上调用preventDefault
,那么你也应该有一个CSS规则来禁用触摸滚动,如.sortable-handler { touch-action: none; }
.sortable-handler { touch-action: none; }