设置每次点击之间的间隔

时间:2011-09-06 09:32:20

标签: javascript jquery

我有一个工作添加/删除我刚创建的数字,用于显示附加到内容滑块的当前页面的数量,这不是滑块的功能(请查看http://sneakyrascal.com/coupon2

单击箭头时,

滑块每秒更改每个内容,但数字会立即更改,因此当用户快速点击5次时,内容将无法达到该数字,例如页面可能位于第三页但是这个数字是5!

我试过使用.delay它没有用...有没有办法添加到脚本中,所以点击不会立即影响当前的数字?例如,箭头上的不止一次点击每秒只会影响一次,这应该是我认为的技巧......

$(function(){
  $(".jcarousel-next-horizontal").click(function(){
    var currentValue = $(".pages").text();
    var five = "5";
    var newValue = parseInt(parseFloat(currentValue)) + 1;
    $(".pages").text(newValue);
    if (currentValue==five) {
      $(".pages").text("5");
    }
  });

  $(".jcarousel-prev-horizontal").click(function(){
    var currentValue = $(".pages").text();
    var newValue = parseInt(parseFloat(currentValue)) - 1;
    var one = "1";
    $(".pages").text(newValue);
    if (currentValue==one) {
      $(".pages").text("1");
    }
  });
});

2 个答案:

答案 0 :(得分:0)

您可以使用全局变量来指示事件的时间

答案 1 :(得分:0)

最简单的方法可能是存储最后一次点击的时间,当新的点击发生时,将当前时间与上一次点击的时间进行比较,如果自上次点击后不到一秒钟,则忽略点击。

可以使用jQuery的data()方法将时间存储在全局变量中或者(可能更好)与实际对象相关联。

例如:

  $(".jcarousel-prev-horizontal").click(function(){
    var currentTime = Date.now();
    var lastClickTime = $(this).data("lastClickTime");
    if (lastClickTime && (currentTime - lastClickTime < 1000)) {
         return(false);   // ignore the click
    }
    $(this).data("lastClickTime", currentTime);   // record time of last click
    var currentValue = $(".pages").text();
    var newValue = parseInt(parseFloat(currentValue)) - 1;
    var one = "1";
    $(".pages").text(newValue);
    if (currentValue==one) {
      $(".pages").text("1");
    }
  });