draggable中的input、textArea无法聚焦问题解决

解决方法

在input、textArea上添加@pointerdown.stop.native

   <a-textarea
               v-model="element.title"
               @pointerdown.stop.native
        />

为什么click.stop不生效

dragaable源码里发现对于事件的监听不是click事件,而是如下三个:

supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && !Safari

 if (options.supportPointer) {
   
      on(el, 'pointerdown', this._onTapStart);
    } else {
   
      on(el, 'mousedown', this._onTapStart);
      on(el, 'touchstart', this._onTapStart);
    }

这段代码是一个条件语句,用于添加事件监听器。它首先检查浏览器是否支持指针事件(PointerEvent),并且不是Safari浏览器。如果支持指针事件,则在元素上添加pointerdown事件的监听器(_onTapStart函数);否则,在元素上同时添加mousedown事件和touchstart事件的监听器(_onTapStart函数)。
因此只能用 @pointerdown.stop.native 来阻止事件冒泡

click与pointerdown部分区别

@pointerdown.stop.native 与 @click.stop 有一些区别,主要涉及到事件类型和触发时机。

  • 事件类型:
    @pointerdown.stop.native 针对的是 pointerdown 事件,它是一个原生事件,包括鼠标点击、触摸屏点击等。
    @click.stop 针对的是 click 事件,也是一个常见的鼠标点击事件,但不包括触摸屏等其他输入方式。

  • 触发时机:
    @pointerdown.stop.native 在 pointerdown 事件发生时触发,这一事件在用户按下指针设备按钮(例如鼠标左键或触摸屏点击)时触发。
    @click.stop 在 click 事件发生时触发,这一事件在用户完成鼠标点击(或触摸屏点击)时触发。

  • 兼容性:
    @pointerdown.stop.native 更通用,适用于不同类型的指针设备,但在一些老旧浏览器中可能不被支持。
    @click.stop 更专注于鼠标点击,通常在支持现代浏览器的情况下可用。
    在选择使用哪个修饰符时,取决于你想要阻止的事件类型以及你的应用中所使用的输入设备。如果需要更广泛的支持,可以考虑使用 @pointerdown.stop.native;如果只关注鼠标点击,那么 @click.stop 可能更合适。

相关推荐

  1. draggableinput、textArea无法聚焦问题解决

    2024-01-12 22:12:05       50 阅读
  2. 解决elementUI使用checkbox无法选中问题

    2024-01-12 22:12:05       53 阅读
  3. ElectronTraysetContextMenu导致窗口无法聚焦

    2024-01-12 22:12:05       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-12 22:12:05       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-12 22:12:05       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-12 22:12:05       82 阅读
  4. Python语言-面向对象

    2024-01-12 22:12:05       91 阅读

热门阅读

  1. 战略投资常用的ChatGPT通用提示词模板

    2024-01-12 22:12:05       53 阅读
  2. 需要登录的网站爬虫详解

    2024-01-12 22:12:05       60 阅读
  3. ConflictingBeanDefinitionException异常快速处理

    2024-01-12 22:12:05       46 阅读
  4. **没有完美的人生,不完美的才是人生**

    2024-01-12 22:12:05       51 阅读
  5. GO基础进阶篇 (十二)、反射

    2024-01-12 22:12:05       56 阅读
  6. 如何一键合并多个excel文件

    2024-01-12 22:12:05       54 阅读
  7. [linux] git clone一个repo,包括它的子模块submodule

    2024-01-12 22:12:05       61 阅读