事件冒泡JS
Event bubling JS
我有两个元素,它们在父 g 容器中一个位于另一个之上。
多边形 polygon-img and textarea textarea-img,父级 g 容器有一个 d3.js 拖动处理程序,代码如下
useEffect(() => {
const zoneNode = zoneRef.current;
let dragBehavior;
if (isEditing && !isPlacingText && !zone.isEditingText) {
dragBehavior = d3.drag().on("drag", zoneDrag).on("end", zoneDragEnd);
} else {
dragBehavior = d3.drag().on("drag", null).on("end", null);
}
d3.select(zoneNode).datum(position).call(dragBehavior);
}, [isEditing, isPlacingText, zone]);
当我点击 textarea dom 节点时会触发拖动事件以及当我点击多边形时,有什么方法可以限制这种行为并使其仅在我点击多边形时触发?
要使我的评论成为答案:
您可以使用 pointer-events
CSS 属性 有效地使 <textarea>
通过鼠标事件:
pointer-events: none
我有两个元素,它们在父 g 容器中一个位于另一个之上。 多边形 polygon-img and textarea textarea-img,父级 g 容器有一个 d3.js 拖动处理程序,代码如下
useEffect(() => {
const zoneNode = zoneRef.current;
let dragBehavior;
if (isEditing && !isPlacingText && !zone.isEditingText) {
dragBehavior = d3.drag().on("drag", zoneDrag).on("end", zoneDragEnd);
} else {
dragBehavior = d3.drag().on("drag", null).on("end", null);
}
d3.select(zoneNode).datum(position).call(dragBehavior);
}, [isEditing, isPlacingText, zone]);
当我点击 textarea dom 节点时会触发拖动事件以及当我点击多边形时,有什么方法可以限制这种行为并使其仅在我点击多边形时触发?
要使我的评论成为答案:
您可以使用 pointer-events
CSS 属性 有效地使 <textarea>
通过鼠标事件:
pointer-events: none