关于vue的点击事件,如何在某函数运行时,禁止点击?

情况是这样的,有好多个<li></li>元素,每个元素上都绑定了@click事件,点击其中一个元素,触发事件函数,该函数中有个setInterval 函数,我想在这个定时函数运行时,其他的点击都禁止屏蔽,无法点击,等定时函数清除后,才能点击,不知道该如何解决???

<li class="box" v-for="(item, index) in items" v-bind:data-x=item.x v-bind:data-y=item.y v-on:click="clickBox(item)" v-bind:class="[item.classObj, {'entrance': (item.x == entry.entryX && item.y == entry.entryY)}]"></li>

阅读 7.5k
2 个回答
  1. 建议用事件代理,绑定太多事件浪费系统资源
  2. 你不需要禁止点击,只需要在 setInterval 执行完之前不处理点击事件即可

可以在函数外部给个变量,当事件执行时设置为 true; 事件执行结束后再设置成false; 事件执行前先判断一下这个变量是否为true, 如果为true直接return, 不执行当前代码即可。

推荐问题