我正在实现一个操纵杆控件,只要用户保持鼠标单击,就想在每100毫秒后调用mousedown函数。我该如何触发呢?

    var hammer = Hammer(document.getElementById('joystick'));
    hammer.on("mousemove", onMouseMove);
    hammer.on("mousedown", onMouseDown);


上面的代码最初只调用一次mousedown。要再次触发它,我必须释放鼠标按钮并再次单击。

最佳答案

jQuery中类似的东西(从我已有的代码中删除)

    var longClickTimer;

    $('#thing_to_click').on('mousedown', function(e) {
        var $$ = $(this);
        longClickTimer = setInterval(function(){
            $$.trigger('click');
        }, 350);
    });

    $('#thing_to_click').on('mouseup', function(e) {
        clearInterval(longClickTimer);
    });

    $('#thing_to_click').on('click', function(e) {
        e.preventDefault();
        // do something
    });


以我为例,动画需要350毫秒才能移动,因此我每350毫秒触发一次动画,您可能需要一些不同的东西。

这不是“最佳”代码,因为您可能会获得重复的点击次数,因此您可能需要执行某些操作来处理该次点击。

关于javascript - 只要按住鼠标,如何在javascript中调用mousedown事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22842618/

10-13 00:42