Во-первых, обратите внимание, что ваш вопрос говорит о том, что вы хотите остановить интервал на mousedown
, но ваш код использует mousemove
.
Во-вторых, не используйте alert()
для проверки этого, поскольку он блокирует обновление пользовательского интерфейса.Вместо этого используйте console.log()
.
Наконец, чтобы решить проблему, используйте вызов setTimeout()
в событии мыши, чтобы отложить перезапуск интервала.Попробуйте это:
$(document).ready(function() {
function logMe() {
console.log('jj');
}
function startInterval() {
return setInterval(logMe, 3000);
}
var interval = startInterval(), timeout;
$(document).mousemove(function(event) {
clearInterval(interval);
clearTimeout(timeout);
timeout = setTimeout(function() {
interval = startInterval();
}, 2000); // note 2000 delay here, as it compounds with the 3000 delay on the
// interval to make a 5000ms delay
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>