javascript - 如何使用光标:使用 event.preventDefault() 复制?
问题描述
我想在我的 dropzone 上添加一个光标:复制,但我也使用 event.preventDefault() 在我删除文件时解除该行为,它正在浏览器中打开。
我的反应代码片段:
const handleDragOver = (event: React.DragEvent<HTMLDivElement>): void => {
event.preventDefault();
event.stopPropagation();
console.log("Drag Over")
};`
以及渲染的实现:
return(<div
id="drop-area"
ref={this.dropRef}
className= 'checklist-pane--is-dragging'
onDragEnter={handleDragEnter}
onDragLeave={handleDragLeave}
onDragOver={handleDragOver}
onDrop={handleDrop}
>)
的CSS:
&--is-dragging {
border-color: $color-primary;
background: rgba($color-primary, 0.2);
cursor: copy;
}
解决方案
您可以在 dragEnter 上的组件状态中设置一个布尔值,这意味着您当前正在悬停一个元素并将该布尔值设置为 false onDragLeave
class YourComp extends React.Component {
state = {
isDragging: false,
}
handleDragEnter = (event) => {
...
this.setState({ isDragging: true });
}
handleDragLeave = (event) => {
this.setState({ isDragging: false });
}
render() {
const { isDragging } = this.state;
const className = isDragging ? checklist-pane--is-dragging' : '';
return (<div
id="drop-area"
ref={this.dropRef}
className={className}
onDragEnter={this.handleDragEnter}
onDragLeave={this.handleDragLeave}
onDragOver={handleDragOver}
onDrop={handleDrop}
>);
}
}
推荐阅读
- c++ - 编写一个程序,将一行文本作为输入,并反向输出该行文本。C++
- python - 用python循环成绩平均函数
- javascript - JS - 如何使用接受多个参数的函数删除事件侦听器?
- ios - 选择单元格后,如何向集合视图单元格添加约束?
- java - 如果我们在 java 线程完成任务之前关闭它(返回),Activity 就会崩溃
- floating-point - 如果我们将格式更改为类似于双 IEEE 754-1985 的格式,我们能否消除数字的浮点错误?
- apache-kafka - 使用 Kafka 主题向 Storm Crawler 提供种子 URL
- java - 具有多个方法调用的类的 JUnit 测试
- javascript - 无法在“弹出”中找到元素
- java - 如何在 TimerListener 内使用简单循环正确移动形状?