JQuery代码可以长期用于长期事件

时间:2014-02-13 20:07:06

标签: jquery

我试图点击"长按"的事件,因此如果用户不抬起他的鼠标指针,代码将继续永久地添加"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; 
            });
到目前为止,它只发射一次,然后停止。 我能做些什么来实现它?

3 个答案:

答案 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)

我相信它正在寻求

http://jsfiddle.net/Ze3FH/

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; 
        });