我使用的是Framework7 sortable list,它工作得很好,只是它不会在列表改变时触发事件。
所以我尝试了一些内置的事件:
$('.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');
});
。。但我得到的只是:
由于目标被视为被动,
无法在被动事件侦听器内部执行preventDefault操作。请参阅https://www.chromestatus.com/features/5093566007214080
我应该寻找哪个事件来获得每种排序的更新列表?
发布于 2017-02-08 18:01:51
当用户释放当前在新位置排序的元素时,要在Framework7中处理可排序列表,可以使用以下代码:
$$('li').on('sortable:sort',function(event){
alert("From " + event.detail.startIndex + " to " + event.detail.newIndex);
});
发布于 2017-02-17 10:32:41
请参阅此blog post。如果您在每个touchstart
上调用preventDefault
,那么您还应该有一个禁止触摸滚动的CSS规则,如下所示
.sortable-handler {
touch-action: none;
}
发布于 2019-04-14 16:56:03
对我来说
document.addEventListener("mousewheel", this.mousewheel.bind(this), { passive: false });
做到了( { passive: false }
部分)。
https://stackoverflow.com/questions/42101723
复制相似问题