Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jquery-避免双击_Jquery_Events_Click_Jquery Animate - Fatal编程技术网

jquery-避免双击

jquery-避免双击,jquery,events,click,jquery-animate,Jquery,Events,Click,Jquery Animate,我有一个简单的动画问题是我想动画结束之前,我可以再次点击 $(".next").click(function() { $('#result').animate({ left: '-=250', }, 1000, function() { pos = $('#result').position(); if (pos.left <= -550) { $('.next').hide(); } if (pos.left <= -250) { $('

我有一个简单的动画问题是我想动画结束之前,我可以再次点击

$(".next").click(function() {

 $('#result').animate({
    left: '-=250',
   }, 1000, function() {
  pos = $('#result').position();

  if (pos.left <= -550) {
$('.next').hide();
  }
  if (pos.left <= -250) {
    $('.prev').show();
  }
});
$(“.next”)。单击(函数(){
$(“#结果”)。设置动画({
左:'-=250',
},1000,函数(){
pos=$(“#结果”).position();

如果(pos.left在单击时禁用按钮,并在相同时间段后使用“设置超时”功能启用该按钮

$(".next").click(function() {

   $(this).enabled = false;
   setTimeout('enableButtons()', 250);     }

   $('#result').animate({
      left: '-=250',
   }, 1000, function() {
    pos = $('#result').position();

  if (pos.left <= -550) {
$('.next').hide();
  }
  if (pos.left <= -250) {
    $('.prev').show();
  }
});

function enableButtons() {
    $(".next").enabled = true;
}
$(“.next”)。单击(函数(){
$(this).enabled=false;
setTimeout('enableButtons()',250);}
$(“#结果”)。设置动画({
左:'-=250',
},1000,函数(){
pos=$(“#结果”).position();

如果(pos.left答案很简单,请使用
.data()
方法在项目上设置可单击的标志。您可以在完整功能中重新启用它

$(".next").click(function() {
  var btn = $(this);
  if (btn.data('running'))
    return;

  btn.data('running', true);

  $('#result').animate({
    left: '-=250',
    }, 1000, function() {
       pos = $('#result').position();

       if (pos.left <= -550) {
         $('.next').hide();
       }
       if (pos.left <= -250) {
         $('.prev').show();
       }

       // Unset it here, this lets the button be clickable again
       btn.data('running', false);
    }
   );
});
来自jQuery.com:

.data()方法允许我们以一种安全的方式将任何类型的数据附加到DOM元素,从而避免循环引用和内存泄漏

我们可以为单个元素设置多个不同的值,并在以后检索它们:

在动画上使用complete方法(您已经使用该方法来显示/隐藏下一个/上一个按钮),我们可以重新启用按钮以单击

请注意,我们将
$(this)
存储到
btn
中,这样就可以通过关闭complete函数来访问它

$(".next").click(function() {
  var btn = $(this);
  if (btn.data('running'))
    return;

  btn.data('running', true);

  $('#result').animate({
    left: '-=250',
    }, 1000, function() {
       pos = $('#result').position();

       if (pos.left <= -550) {
         $('.next').hide();
       }
       if (pos.left <= -250) {
         $('.prev').show();
       }

       // Unset it here, this lets the button be clickable again
       btn.data('running', false);
    }
   );
});
$(“.next”)。单击(函数(){
var btn=$(本);
如果(btn.data(‘运行’))
返回;
btn.数据(“正在运行”,为真);
$(“#结果”)。设置动画({
左:'-=250',
},1000,函数(){
pos=$(“#结果”).position();

如果(pos.left,可以使动画在
动画
再次启动之前自动完成:

$('#result').stop(true, true).animate({ ...

单击时禁用按钮,并使用.animate函数的完整函数调用重新启用它:

.设置动画(属性[,持续时间][,缓和][,完成]


complete动画完成后要调用的函数。

您有可以共享的小提琴吗?
。data
data item=“asd”
属性不同。它从jQuery 1.3开始就存在,并存储对包装该dom的jQuery对象引用的数据。从jQuery 1.4.3开始。data()由
数据属性自动填充,但是
之前的HTML5完全支持
数据()
。它只是在内存中存储一个javascript对象。