如果多次点击按钮,我需要获得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;
但显然没有帮助。非常感谢
答案 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;
答案 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
}
});
});