微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – 不要’允许多次点击按钮/图标

我正在创建一个打鼹鼠式的游戏,其中给出了一个总和,并且数字从容器的底部到顶部生成动画.游戏的目的是单击总和的正确答案并收集尽可能多的正确答案.

我的问题是用户可以多次单击数字和其他图标,导致其崩溃.有办法克服这个问题吗?

我试过这个jQuery one function

$(".character").one("click", function() {
});

但图标重新出现,所以我需要它们再次点击.

我也试图设置一个时间,但似乎无法让它工作.有人可以指出正确的方向.

    setTimeout(function() {
    $(".character").one("click", function() {
    });
}, 3000);

小提琴:http://jsfiddle.net/GvNB8/

解决方法:

你的主要问题是你在重新显示它们时没有与角色交互.在这种情况下,阻止用户单击的唯一方法是构建一种方法,以防止在超时快速连续点击两次.

方法看起来像这样:

function clickThrottled(fn) {
  var click = true;
  return function () {
    if(click) {
      click = false;
      fn.apply(this, arguments);
      setTimeout(function () { click = true; }, 1000);
    }
  };
}

然后使用这样的函数

$('.character').click(clickThrottled(function () {
   // do your one time magic.
}));

在这里使用的是JavaScript闭包.传递给click事件处理程序的函数调用底层函数一次,然后忽略所有调用1秒钟,然后重新启用它自己.

我仍然建议你使用一种正常的方法,只需重新启用元素重新绘制到屏幕上 – 但上面也有效..

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐