当前位置: 首页 > news >正文

文字云网站/基本营销策略有哪些

文字云网站,基本营销策略有哪些,不是做有网站都叫jwth,哪里有网站开发企业当一个元素上,同时绑定了双击事件和单击事件,当双击时,会触发单击事件,如何避免双击时触发单击事件? ​ 方法 1:使用 setTimeout 延迟处理单击事件​ 通过延迟单击事件的处理时间,避免与双击事…

当一个元素上,同时绑定了双击事件和单击事件,当双击时,会触发单击事件,如何避免双击时触发单击事件?

方法 1:使用 setTimeout 延迟处理单击事件​

通过延迟单击事件的处理时间,避免与双击事件冲突。

<template><button @click="handleClick" @dblclick="handleDoubleClick">点击/双击我</button>
</template><script setup>
import { ref } from 'vue'const clickTimeout = ref(null)const handleClick = () => {// 清除之前的定时器(防止双击时触发单击)if (clickTimeout.value) {clearTimeout(clickTimeout.value)clickTimeout.value = nullreturn}// 设置新的定时器,延迟执行单击逻辑clickTimeout.value = setTimeout(() => {console.log('单击事件触发')// 执行单击逻辑...clickTimeout.value = null}, 300) // 300ms 内如果有双击,则不会触发单击
}const handleDoubleClick = () => {// 清除单击定时器,防止单击事件触发if (clickTimeout.value) {clearTimeout(clickTimeout.value)clickTimeout.value = null}console.log('双击事件触发')// 执行双击逻辑...
}
</script>

方法2:使用 v-click-outside 或自定义指令

如果需要在复杂交互中区分单击和双击,可以封装一个自定义指令。

实现方式:

// directives/clickOrDoubleClick.js
export default {mounted(el, binding) {let clickTimeout = nullconst { value, arg } = bindingel.addEventListener('click', (e) => {if (clickTimeout) {clearTimeout(clickTimeout)clickTimeout = nullreturn}clickTimeout = setTimeout(() => {if (typeof value === 'function') {value(e, 'click')}clickTimeout = null}, 300)})el.addEventListener('dblclick', (e) => {if (clickTimeout) {clearTimeout(clickTimeout)clickTimeout = null}if (typeof value === 'function') {value(e, 'dblclick')}})},unmounted(el) {el.removeEventListener('click', () => {})el.removeEventListener('dblclick', () => {})},
}

注册指令​

// main.js
import { createApp } from 'vue'
import App from './App.vue'
import clickOrDoubleClick from './directives/clickOrDoubleClick'const app = createApp(App)
app.directive('click-or-double-click', clickOrDoubleClick)
app.mount('#app')

使用方式

<template><button v-click-or-double-click="(e, type) => handleClick(e, type)">点击/双击我</button>
</template><script setup>
const handleClick = (e, type) => {if (type === 'click') {console.log('单击事件')} else if (type === 'dblclick') {console.log('双击事件')}
}
</script>

方法 4:使用 lodash.debounce 或 lodash.throttle(适用于复杂场景)​

如果单击事件逻辑较复杂,可以使用防抖(debounce)或节流(throttle)来优化。

<script setup>
import { ref } from 'vue'
import { debounce } from 'lodash'const handleClick = debounce(() => {console.log('单击事件(防抖处理)')
}, 300)const handleDoubleClick = () => {console.log('双击事件')
}
</script><template><button @click="handleClick" @dblclick="handleDoubleClick">点击/双击我</button>
</template>

注意​​

  • 防抖适用于单击事件,但双击事件仍然需要单独处理。
  • 如果双击事件触发后,单击事件仍然可能被误触发,建议结合 setTimeout 方法。
http://www.whsansanxincailiao.cn/news/30243378.html

相关文章:

  • 网站搭建在线支付/关联词有哪些小学
  • 平面设计网站大全有哪些/seo搜索优化待遇
  • win8.1 wordpress/鹤壁seo公司
  • 网站建设分几模块/微软bing搜索引擎
  • 赤峰网站建设培训/西安网络公司
  • 免费个人网站怎么做/重庆seo排名优化
  • 做单位网站/长春网站建设开发
  • 快速网站seo效果/网络推广公司网站
  • wordpress 导入文章/整站优化系统
  • 保定建设工程信息网站/搜索推广是什么意思
  • 网站界面需求/江北seo
  • wordpress软件站/seo诊断分析在线工具
  • 广州外贸网站建站/西安seo代运营
  • 佛山做外贸网站的/百度网盘资源搜索引擎入口
  • 温州网站建设推广专家/最新推广方法
  • 网站底部友情链接怎么做的/seo在线培训课程
  • 哈尔滨优化seo外包公司/青岛网站seo服务
  • 销售网站制作怎么做/百度竞价广告的位置
  • 网站开发打开世界之窗默认内核/网站alexa排名
  • wordpress插件whmcs/优化营商环境指什么
  • 长春火车站是哪个区/微信营销方法
  • 万网域名注册号后怎么做网站/百度关键字搜索排名
  • wordpress 设置404页面模板/北京seo代理商
  • 陕西科强建设工程有限公司官方网站/二十条优化疫情措施
  • 如何建设局域网内部网站/手机百度搜索引擎
  • 做阿胶上什么网站比较好/seo查询 站长工具
  • 虚拟主机网站建设步骤?/网络营销策划书8000字
  • 六安市住房和城乡建设委员会网站/长尾词挖掘工具爱站网
  • 做视频赚钱的网站/seo排名公司
  • 微信h5的制作方法/百度seo关键词优化推荐