当前位置: 首页 > 知识库问答 >
问题:

如何防止拖动后执行单击事件?

慕铭
2023-03-14

我有一个可拖动的元素,在它里面,我有一个带有onclick事件的组件。在拖动结束时,将触发单击事件。我的可拖动元素看起来像这样。我使用了一个名为react-draggable的包。

<Draggable
    position={this.state.realPosition}
    onStart={this.handleStart}
    onDrag={this.handleDrag}
    onStop={this.handleStop}
    disabled={this.state.isDialogOpen}
    bounds="parent">
      <div style={{"width":"fit-content"}}>
        <Helmet getDialogStatus={this.handleClick} />  
      </div>
</Draggable>

头盔组件内部有onClick事件,它会打开一个对话框。当我拖动并释放该元素时,将打开此对话框。我的问题是如何防止这种行为,以及如何将它们与事件分开?

谢谢

共有2个答案

卫梓
2023-03-14

尝试使用event.stopPropagation() this.handleDragthis.handleStop事件处理程序中的code>。他们可能会解决你的问题。

长孙高远
2023-03-14

我将在组件中设置一个状态,并将其传递给头盔组件。

如果是拖动,则禁用任何单击事件。

 类似资料:
  • 问题内容: 我在页面上有可以用jQuery拖动的元素。这些元素是否具有单击事件,可以导航到另一个页面(例如,普通链接)。 防止单击在拖放时处于触发状态的最佳方法是什么? 我对可排序元素有这个问题,但是认为最好有一种通用拖放方法。 问题答案: 解决方案是添加单击处理程序,以防止单击在拖动开始时传播。然后在执行删除操作后删除该处理程序。最后的动作应该稍微延迟一点,以防止点击的发生。 可排序的解决方案:

  • 问题内容: 这是我想做的事情:单击页面上的一个按钮,这又使(2)事情发生: 显示一个ModalPopup,以防止用户按下任何按钮或更改值 在方法后面调用我的代码,完成后隐藏ModalPopup 这是ASP标记: 现在,这是我在C#代码后面的代码: 为什么不起作用?ModalPopup可以完美显示,但是btnSaveData_Click事件从不触发。 更新: 第一个建议对我不起作用。我还尝试了您的第

  • 问题内容: 我正在尝试在React JS中创建一个模式 我有一个外部div,它是整个身体,而我有一个内部div。如果要在内部div之外单击它,我想应用该函数以关闭模式。 我的代码如下: 当我单击带有图标的链接时,或者在内部div外部单击时,它都可以正常工作。 但是问题是,如果我在内部div中单击,它也会关闭。 我不想使用jQuery。 有什么建议吗? 更新 而在我的情况是一个接触的形式: 问题答案

  • 我用的是JavaFX。 当某个文件没有加载时,我希望阶段关闭,该实例中的代码停止执行。

  • 本文向大家介绍如何防止XSS攻击?相关面试题,主要包含被问及如何防止XSS攻击?时的应答技巧和注意事项,需要的朋友参考一下 (1) 将前端输出数据都进行转义 (2) 将输出的字符串中的\反斜杠进行转义 (3) 从url中获取的信息,防止方法是由后端获取,在前端转义后再行输出 (4) 使用cookie的HttpOnly属性,保护好cookie 详细参见:http://blog.csdn.net/fe

  • 我们对代码进行了安全审计,它提到我们的代码容易受到XML外部实体(XXE)攻击。 XML外部实体攻击利用XML功能在处理时动态构建文档。XML实体允许动态包含来自给定资源的数据。外部实体允许XML文档包含来自外部URI的数据。除非配置为其他方式,否则外部实体会强制XML解析器访问URI指定的资源,例如本地计算机或远程系统上的文件。此行为会使应用程序遭受XML外部实体(XXE)攻击,这些攻击可用于执