我的小功能“点击并按住”存在未知问题。谁能告诉我这是怎么回事?感谢帮助。

<!DOCTYPE html>
<html>
<body>
<button id="seconds">30</button>

<script type="text/javascript">


var timeoutId = 0;

$('#seconds').on('mousedown', function() {
timeoutId = setTimeout(alert("something"), 1000);
}).on('mouseup mouseleave', function() {
clearTimeout(timeoutId);
});

</script>
</body>
</html>

最佳答案

问题是您的警报将立即被调用。您需要将一个函数传递给setTimeout,而不是调用一个函数。我已经将代码重构为功能,现在如果您不移动鼠标,警报将在1秒后显示。



var timeoutId = 0;

$('#seconds').on('mousedown', function() {
  timeoutId = setTimeout(function(){alert("something")}, 1000);
}).on('mouseup mouseleave', function() {
  clearTimeout(timeoutId);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="seconds">30</button>

关于javascript - 点击并按住javascript。某事不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43944571/

10-11 20:14