Ale*_*lex 3 html javascript events drag reactjs
我有以下HTML(反应)设置:
<div
onDragStart={
(e) => { this.bound_handleDragStart.call(this, e) }}
draggable="true"
>
<div>Stuff here</div>
<div><input .../></div>
</div>
Run Code Online (Sandbox Code Playgroud)
此设置使整个外部div可拖动.
但是,如果在输入上开始拖动,我希望它被取消.
我已经尝试将onDragStart添加到输入中,将eventListener添加到输入并返回false,禁止在句柄拖动开始时传播,以及许多其他事情,但它们都不起作用.
作为一个不,当event.target返回外部div时,所以我无法找到一种方法来确定哪个孩子开始拖动.
我相信这可以做到并且不能太难?
我已经考虑过将拖动移动到所有内部div,但我不确定这是否能解决我的问题,或者创建一组全新的问题,而且我觉得这不是正确的方法
信不信由你,但实际上你需要设置draggable="true"输入,然后dragstart在你运行的输入上添加一个事件处理程序event.preventDefault():
<div
onDragStart={
(e) => { this.bound_handleDragStart.call(this, e) }}
draggable="true"
>
<div>Stuff here</div>
<div><input draggable="true" onDragStart={
(e) => e.preventDefault()
}/></div>
</div>
Run Code Online (Sandbox Code Playgroud)
这将阻止实际拖动,但dragstart父项上的事件仍将被触发,因为它会冒泡.如果你想要防止这种情况,你也需要打电话event.stopPropagation().
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |