方法一:使用vue阻止子级元素的click事件冒泡。简单得:可以直接用stop
<div @click="test1()">
<span @click.stop="test2()">按钮1</span>
<span>按钮2</span>
这样点击div里面的按钮1,就不会触发div绑定时间test1()方法。
方法二:可以自己写个阻止冒泡事件 然后在发生冒泡的元素中调用这个事件
const preventReClick = Vue.directive('preventReClick', {
inserted: function(el, binding) {
el.addEventListener('click', () => {
if (!el.disabled) {
el.disabled = true
1、在项目中遇到一个问题:当事件中的代码执行耗费时间,且用户在短时间不断点击按钮,造成短时间多次触发了按钮的事件(不断向服务器发起请求)
2、解决办法
方法一: 定义一个变量(如:isLock)来控制按钮的disable属性,进而来防止用户短时间的多次点击按钮方法二:全局定义一个指令,通过在按钮绑定指令来控制按钮被点击间隔时间方法三:只可以点击一次。3、具体实现:
方法1步骤:
① 首先设置变量isLock属性值为false,使得按钮可点击(disable: true)
② 当用户点击后,立即设置按钮不可点