我正在实现一个操纵杆控件,只要用户保持鼠标单击,就想在每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/