我试图点击"长按"的事件,因此如果用户不抬起他的鼠标指针,代码将继续永久地添加"yay!"
:
这是我的代码:
var pressTimer
$("#area").mouseup(function () {
clearTimeout(pressTimer)
// Clear timeout
return false;
}).mousedown(function(){
// Set timeout
pressTimer = window.setTimeout(function () {
$('#result').html('yay!');
}, 1000)
return false;
});
到目前为止,它只发射一次,然后停止。
我能做些什么来实现它?
答案 0 :(得分:1)
在setInterval
内使用setTimeout
并使用clearInterval
停止。
答案 1 :(得分:1)
您需要setInterval而不是setTimeout,并且需要附加到结果div的文本而不是替换它的内容。有多种方法可以追加,但我只是在示例中做了一个字符串连接。 http://jsfiddle.net/7E7Jk/
var pressTimer;
var $result = $('#result');
$("#area").mouseup(function () {
clearInterval(pressTimer)
// Clear timeout
return false;
}).mousedown(function () {
// Set timeout
pressTimer = window.setInterval(function () {
$result.text($result.text() + 'yay!');
}, 1000)
return false;
});
答案 2 :(得分:0)
我相信它正在寻求
var pressTimer;
$("#area").mouseup(function () {
clearInterval(pressTimer)
// Clear timeout
return false;
}).mousedown(function(){
// Set timeout
pressTimer = window.setInterval(function () {
$('#result').html($('#result').html() + 'yay!');
alert("2");
}, 1000);
return false;
});