我添加了一段代码,其中包含我希望在评论中实现的内容。
有9个按钮,我需要点击一个按钮的data-id值,但用户可能会点击一个按钮,然后快速决定要点击其他按钮,所以我想要最后一个按钮的值他们点击按钮。
$( '#add-shot a.btn' ).on( 'click', function(e) {
e.preventDefault();
// delay for 1500
// if no other button is clicked, then simply use $( this ).data('id');
// else,
// if other button is clicked, don't use original data-id but use the new data-id
var id = $( this ).data('id');
// run the rest of the code
});
答案 0 :(得分:4)
您可以使用setTimeout()
的全局计时器。在每次单击时只需清除超时,如果在1.5秒内没有单击它们,则将调用匿名函数并获取相应的id
:
var timer;
$( 'button' ).on( 'click', function(e) {
e.preventDefault();
var self = this;
clearTimeout(timer); // Reset the timer.
timer = setTimeout(function(){ // Call this function if the timer
var id = $( self ).data('id'); // did not reset within 1.5 seconds.
alert(id);
}, 1500);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<button data-id="foo">
foo
</button>
<button data-id="bar">
bar
</button>
<button data-id="biz">
biz
</button>
&#13;