javascript - 按下鼠标按钮时重复执行代码

标签 javascript jquery html

$('.test').click(function(){
$('.act').removeClass('act');
$(this).addClass('act');
});

$('#btn').mousedown(function(){
$('.act').insertBefore($('.act').prev());
});
.test{
cursor:pointer;
}

.act{
background:gold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='test'>323</div>
<div class='test'>525</div>
<div class='test'>727</div>
<div class='test'>929</div>
<div class='test act'>453</div>
<br>
<button id='btn'>CLICK</button>

按住按钮,我需要继续 act 以移动到顶部,而无需再次点击。

怎么做?

最佳答案

mousedown 上使用 setInterval,然后在 mouseup 上使用 clearInterval:

$('.test').click(function(){
$('.act').removeClass('act');
$(this).addClass('act');
});

var intervalId;
$('#btn').mousedown(function(){
    intervalId = setInterval(function() {
        $('.act').insertBefore($('.act').prev());
    }, 500);
}).mouseup(function() {
    clearInterval(intervalId);
});
.test{
cursor:pointer;
}

.act{
background:gold;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class='test'>323</div>
<div class='test'>525</div>
<div class='test'>727</div>
<div class='test'>929</div>
<div class='test act'>453</div>
<br>
<button id='btn'>CLICK</button>

关于javascript - 按下鼠标按钮时重复执行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52330617/

相关文章:

javascript - DraftJS getBlocksAsArray() 在生产中返回一个数组,但在开发中只返回一个数组(并且有效)

javascript - web socket学习引用

javascript - 为什么 ng-click 不会在组件模板中触发?

html - 使鼠标悬停在父元素上仅影响其自身的文本,而不影响子元素

javascript - 如何确保具有不同复选框的其他选项

javascript - 如何关闭 alertify.dialog

javascript - 使用 js 和 jquery 添加文本链接

javascript - 使用 Angular 从 Google Feed API 获取图像

javascript - 带条件运算符的内联 If-Else 的双假

javascript - 如何在 couchdb 中获取表的数据