vue的双击事件(dbclick的使用)

双击事件(dbclick)

vue事件中基于点击事件,有一个双击事件,通过dblclick事件触发。

语言:vue3/Ts

函数库:vueuse

1、需求分析

  1. 双击事件触发;

  2. 在双击时隐藏对应文字元素;

  3. 展示输入框;

  4. 输入框自动聚焦;

  5. 失去焦点展示文字(元素等)

  6. 效果展示:

2、代码实现(使用jsx写法作为示例)

import { ref, nextTick } from 'vue'
​
export default defineComponent({
  name: 'test',
  setup() {
    const count = ref(999) // 输入框绑定的数据源
    const ipt = ref() // dom元素的定义以及获取
​
    const show = ref(false) // 文字的展示和隐藏
    
    /**
    * 双击事件执行函数
    */
    async function bdlFn() {
      show.value = true
      await nextTick() // 等待dom元素加载完成
      ;(ipt.value as HTMLInputElement).focus() //input元素聚焦
    }
    
    async function iptBlur() {
      console.log('blur')
      show.value = false
    }
    return { count, ipt, iptChange, show, bdlFn, iptBlur }
  },
  render() {
    return (
      <div>
        // jsx语法的v-if实现
        {this.show && (
          <input
            ref={'ipt'}
            class={'h-100px'}
            v-model={this.count}
            onChange={this.iptChange}
            onBlur={this.iptBlur}
            type="text"
          />
        )}
        {!this.show && (
          <span
            onDblclick={this.bdlFn}
            // unocss(原子化css),用着挺方便
            class={'h-30px w-100px inline-block bg-blue-200 cursor-pointer'}
          >
            {'你好'}
          </span>
        )}
      </div>
    )
  }
})
​
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

做一个程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值