点按并按住javascript。有些东西不起作用

时间:2017-05-12 18:42:53

标签: javascript html tapandhold

我的小功能未知问题"点击并按住"。谁能告诉我有什么问题?谢谢你的帮助。

<!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>

1 个答案:

答案 0 :(得分:4)

问题是您的警报会立即被调用。您需要将函数传递给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>