Firefox的mousemove上的preventDefault不起作用

问题描述

这段简单的代码可在Chromium中使用,但不能在Firefox中使用。原因以及移动鼠标时禁用页面交互的最佳方法是什么。我正在尝试实现拖放,我想在拖动时禁用交互。

$('body').on('mousemove',function (event) {
  event.preventDefault();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Try to select this text.<br>
In Chromium,you can't,as expected.<br>
In Firefox,you can,as unexpected.

https://jsfiddle.net/zu0jpar2/

解决方法

您可以使用selectstart事件。

$('body').on('selectstart',function (event) {
  event.preventDefault();
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Try to select this text.<br>
In Chromium,you can't,as expected.<br>
In Firefox,you can,as unexpected.

或CSS user-select属性:

body {
   user-select: none;
}
Try to select this text.<br>
In Chromium,as unexpected.