如何检查jQuery中是否多次单击按钮?

时间:2018-01-17 13:58:14

标签: jquery

如果多次点击按钮,我需要获得true。怎么做?

现在我正在测试它是否检查它是否被点击:

  var clicked = $(this).data('clicked', true);
    if (clicked) {
        return alert('button is clicked!');
    } else {
        return alert('false');
    }

但是如何检查它是否被多次点击?试图改变

 $(this).data('clicked', true);

$(this).data('clicked', true) > 1;

但显然没有帮助。非常感谢

2 个答案:

答案 0 :(得分:2)

你的逻辑略有偏差。您正在使用data()的setter,因此clicked将始终是所选的jQuery对象,因此if语句将始终为true。

您需要将get与data()集合分开。像这样:



$('.foo').click(function() {
  var $foo = $(this);
  if (!$foo.data('clicked')) {
    console.log('first click');
  } else {
    console.log('button has been clicked before');
  }
  $foo.data('clicked', true);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button class="foo">Click me</button>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

可能的解决方案:

$(function() {

    // Handle clicks on #button
    $('#button').on('click', function(e) {
        var trigger = $(this),
        clickCount = trigger.data('clickCount');

        clickCount++;

        trigger.data('clickCount', clickCount);

        if(clickCount > 1) {
            alert('This baby was clicked more than once!')
        }
        else {
            // some other code
        }
    });
});