evt.preventDefault 在 IE 和 Edge 中无法处理鼠标移动事件,甚至尝试过 evt.returnValue = false;但无法阻止传播
evt.preventDefault is not working in IE and Edge on mouse move event, even tried evt.returnValue = false; but didn't work to stop propagation
我有一个可调整大小的 div。在尝试调整它的大小时,整个页面都被选中为蓝色,即使我不打算在 iE 和 Edge 中这样做。我尝试了网上显示的许多解决方案,但没有任何效果。下面是我的代码。我无法阻止鼠标移动事件的默认操作。我正在监听 ownerDocument 的鼠标移动事件。
以下代码在 chrome 和 mozilla
中按预期工作
我通过检查 evt 变量在控制台中看到,在停止传播阻止之前默认为 true,在停止传播阻止之后默认为 false。与 google chrome 的行为相同,但仍然不明白为什么整个页面都被选中
反应代码:
<div className="resizer"
tabIndex={-1}
onMouseDown={this.MouseDown}
/>
private MouseDown(evt: any) {
this.viewState.resizing = true;
const {ownerDocument} = ReactDOM.findDOMNode(this);
ownerDocument.addEventListener('mousemove', this.MouseMove);
ownerDocument.addEventListener('mouseup', this.MouseUp);
this.setState(this.viewState);
}
private MouseMove(evt) {
this.viewState.width = width;
this.viewState.height = height;
if (evt.preventDefault) {
evt.returnValue = false;
evt.preventDefault();
}
else {
evt.cancelBubble = true;
}
this.setState(this.viewState);
}
试试这个模式:
if (event.preventDefault){
event.preventDefault();
}
else {
event.returnValue = false;
}
如果问题是页面被选择为蓝色,还有另一种方法可以防止选择。
试试这个:
<body onselectstart="return false">
而不是 evt.preventDefault();在鼠标移动中使其成为 mousedown/Click 事件本身
private MouseDown(evt: any) {
this.viewState.resizing = true;
const {ownerDocument} = ReactDOM.findDOMNode(this);
evt.preventDefault();
evt.stopPropagation();
ownerDocument.addEventListener('mousemove', this.MouseMove);
ownerDocument.addEventListener('mouseup', this.MouseUp);
this.setState(this.viewState);
}
我有一个可调整大小的 div。在尝试调整它的大小时,整个页面都被选中为蓝色,即使我不打算在 iE 和 Edge 中这样做。我尝试了网上显示的许多解决方案,但没有任何效果。下面是我的代码。我无法阻止鼠标移动事件的默认操作。我正在监听 ownerDocument 的鼠标移动事件。
以下代码在 chrome 和 mozilla
中按预期工作我通过检查 evt 变量在控制台中看到,在停止传播阻止之前默认为 true,在停止传播阻止之后默认为 false。与 google chrome 的行为相同,但仍然不明白为什么整个页面都被选中
反应代码:
<div className="resizer"
tabIndex={-1}
onMouseDown={this.MouseDown}
/>
private MouseDown(evt: any) {
this.viewState.resizing = true;
const {ownerDocument} = ReactDOM.findDOMNode(this);
ownerDocument.addEventListener('mousemove', this.MouseMove);
ownerDocument.addEventListener('mouseup', this.MouseUp);
this.setState(this.viewState);
}
private MouseMove(evt) {
this.viewState.width = width;
this.viewState.height = height;
if (evt.preventDefault) {
evt.returnValue = false;
evt.preventDefault();
}
else {
evt.cancelBubble = true;
}
this.setState(this.viewState);
}
试试这个模式:
if (event.preventDefault){
event.preventDefault();
}
else {
event.returnValue = false;
}
如果问题是页面被选择为蓝色,还有另一种方法可以防止选择。
试试这个:
<body onselectstart="return false">
而不是 evt.preventDefault();在鼠标移动中使其成为 mousedown/Click 事件本身
private MouseDown(evt: any) {
this.viewState.resizing = true;
const {ownerDocument} = ReactDOM.findDOMNode(this);
evt.preventDefault();
evt.stopPropagation();
ownerDocument.addEventListener('mousemove', this.MouseMove);
ownerDocument.addEventListener('mouseup', this.MouseUp);
this.setState(this.viewState);
}