gpt4 book ai didi

javascript - evt.preventDefault 在 IE 和 Edge 中无法处理鼠标移动事件,甚至尝试过 evt.returnValue = false;但无法阻止传播

转载 作者:可可西里 更新时间:2023-11-01 02:24:25 26 4
gpt4 key购买 nike

我有一个可调整大小的 div。在尝试调整它的大小时,整个页面都被选中为蓝色,即使我不打算在 iE 和 Edge 中这样做。我尝试了网上显示的许多解决方案,但没有任何效果。下面是我的代码。我无法阻止鼠标移动事件的默认操作。我在 ownerDocument 上监听鼠标移动事件。

下面的代码在 chrome 和 mozilla 中按预期工作

我通过检查 evt 变量在控制台中看到,在停止传播阻止之前默认为 true,在停止传播阻止之后默认为 false。与谷歌浏览器的行为相同,但仍然不明白为什么整个页面都被选中

react 代码:

 <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);
}

最佳答案

而不是制作 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);
}

关于javascript - evt.preventDefault 在 IE 和 Edge 中无法处理鼠标移动事件,甚至尝试过 evt.returnValue = false;但无法阻止传播,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45509148/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com