苑苑yaya 2023-12-26 16:07 采纳率: 0%
浏览 7

ondrag被禁,ondragStart和ondragEnd有效

electron+react+tsx项目
ondragStart和 ondragEnd中的代码正常执行,ondrag中的代码不能执行,拖动中鼠标是禁止的标志。(背景是客户端的webview界面上拖动组件到特定区域关闭,webview界面和被拖动的组件不在一个架构中)
求问大家这是什么情况!

  • 写回答

1条回答 默认 最新

  • mls学习小记 2023-12-31 20:46
    关注

    这个问题可能是由于浏览器的默认行为导致的。在拖动元素时,浏览器会默认显示一个禁止拖动的标志(禁止符号)。

    为了避免浏览器默认的拖动行为,你可以通过在 ondrag 事件处理程序中调用 event.preventDefault() 方法来阻止浏览器的默认行为。这样可以确保你的自定义拖动行为能够正常执行。

    你可以尝试在 ondrag 事件处理程序中添加以下代码:

    const handleDrag = (event: React.DragEvent<HTMLDivElement>) => {
      event.preventDefault();
      // 在这里添加你的自定义拖动代码
    };
    

    这样,当你拖动元素时,浏览器的默认拖动行为不会触发,而你的自定义拖动代码将会执行。

    另外,如果你想要在拖动开始和结束时禁用鼠标指针(显示禁止符号),你可以在 ondragStartondragEnd 事件处理程序中添加以下代码:

    const handleDragStart = (event: React.DragEvent<HTMLDivElement>) => {
      // 在拖动开始时禁用鼠标指针
      event.currentTarget.style.cursor = 'not-allowed';
    };
    
    const handleDragEnd = (event: React.DragEvent<HTMLDivElement>) => {
      // 在拖动结束时恢复鼠标指针
      event.currentTarget.style.cursor = 'auto';
    };
    

    这样,在拖动开始时鼠标指针将变为禁止符号,而在拖动结束时将恢复为默认指针。

    评论

报告相同问题?

问题事件

  • 创建了问题 12月26日