当前位置: 首页 > 知识库问答 >
问题:

javascript - 在移动端,js如何禁止两个按钮被同时点击?

曹乐意
2023-09-23

使用vue做了一个抽奖,分别为1连抽和5连抽,添加了loading变量防止按钮被短时间内被重复点击,但是同时点击1连抽和5连抽,会触发两次请求,如何避免?

共有2个答案

贺浩壤
2023-09-23

使用一个全局变量就可以了:

// 1连抽的按钮点击事件处理函数handleClick () => {  if (loading) return;  loading = true;// 处理逻辑  loading = false;}// 5连抽的按钮点击事件处理函数handleClick5 () => {  if (loading) return  loading = true;// 处理逻辑  loading = false;}
毛声
2023-09-23

为了防止这种情况,你需要使用一个全局变量(或某种状态)来跟踪当前的抽奖状态。当一个按钮被点击时,你可以设置这个状态为"正在加载",然后在状态改变前禁止其他按钮的点击。以下是一个可能的实现。

首先,你需要一个全局变量来表示当前的抽奖状态。我们可以使用一个简单的loading变量来实现:

let loading = false;

然后,你可以为每个按钮添加一个点击事件处理函数。在这些处理函数中,你可以检查loading变量是否为true。如果是,则可以阻止点击事件并显示一个加载消息。如果不是,则可以执行抽奖逻辑并设置loadingtrue,以防止其他按钮被点击:

// 1连抽的按钮点击事件处理函数handleClick1 = () => {  if (loading) {    // 显示加载消息或做其他处理    return;  }  loading = true;  // 执行1连抽的抽奖逻辑...  // ...  loading = false;}// 5连抽的按钮点击事件处理函数handleClick5 = () => {  if (loading) {    // 显示加载消息或做其他处理    return;  }  loading = true;  // 执行5连抽的抽奖逻辑...  // ...  loading = false;}

请注意,这种方法只在一个页面中有效。如果你有多个页面,你可能需要在每个页面上复制这个逻辑,或者使用一个全局状态管理器(如 Vuex)来管理这个状态。

 类似资料:
  • 因此,目前在伪代码中,我有: 我取代了dragbutton类中的鼠标运动/按压/释放功能。因此,我不能在那里引用新的。因此,dragbutton类中的无法获得,因为它是不同的self。我有什么办法让它起作用吗?谢了。

  • 我想添加一个功能到我的网站。用户必须观看一个短视频。我想阻止在有人看到视频之前点击提交按钮的可能性。因此,我希望它在开始的2分钟内保持不活动状态。 提前谢谢你。

  • 两个(切换)按钮是否可能在片段之间具有同步行为?即:当按钮A在片段A中打开时,我希望按钮B在片段B中的外观也显示为打开。 我该怎么做呢?最终目标是在任何一个片段上都有一个全局按钮。

  • 请教需求:点击删除按钮的时候,这个下拉框禁止他自动收起

  • 本文向大家介绍如何禁止移动端的左右划动手势?相关面试题,主要包含被问及如何禁止移动端的左右划动手势?时的应答技巧和注意事项,需要的朋友参考一下 参考文章

  • 问题内容: 我了解到,您可以仅通过将HTML按钮附加到其标签来禁用(使其实际上不可点击),但不能将其作为属性,如下所示: 由于此设置不是属性,因此如何通过JavaScript动态添加此设置以禁用以前启用的按钮? 问题答案: 由于此设置不是属性 这是一个属性。 一些属性定义为布尔值,这意味着您可以指定它们的值,而忽略其他所有内容。即,您只包括粗体部分,而不是disabled =“ disabled