У меня есть td span, который отображает некоторое числовое значение, и у меня есть 2 значка (стрелка вверх/вниз), показанная выше и ниже диапазона. Нажатие на стрелку вверх увеличивает значение на 1 до 99, а нажатие на стрелку вниз уменьшает значение на 1 до 0. Все работает нормально с ng-click.Увеличьте значение на 1 до тех пор, пока мышь не выйдет с использованием событий угловой мыши
Проблема в том, что если я хочу увеличить значение, скажем от 10 до 20, я должен нажать стрелку вверх 10 раз. Я хочу сделать это, продолжая нажимать мышь на стрелку вверх. Он должен продолжать увеличиваться/уменьшаться до тех пор, пока я не вытащу мышью стрелку вверх/вниз соответственно.
Я пробовал использовать ng-mousedown, но он увеличивается на 1. Есть ли способ, которым я могу вызвать функцию js до тех пор, пока не будет отпущена кнопка мыши.
Любые указатели будут полезны.
Код я пытался до сих пор:
вар MouseDown = истина;
var интервал;
$scope.keepPressing = function(){
mouseDown = true;
if (mouseDown){
doSome();
}
};
function doSome(){
console.log(mouseDown);
if (mouseDown){
console.log(1);
interval = setInterval(doSome, 1000);
}
}
$scope.isMouseDown = function(){
clearInterval(interval);
mouseDown = false;
};
HTML:
Проблема с этим даже при том, что стоимость 1 не печатается, когда я отпустить кнопку мыши, значение ЛОЖЬ (MouseDown значение) становится авторизовались бесконечно. Это просто тестовый поток, чтобы проверить, работает ли он для меня, прежде чем применять его к моей фактической функции.
Выход из консоли: истинная истинно истинно истинно истинно истинно истинно истинно 63 ложные
После того, как я отпустите мышь, ложное значение будет напечатано 63 раза в течение нескольких секунд. Мне нужно обновить страницу, чтобы остановить ее.
Подумайте, что вы хотите использовать $ timeout для вызова некоторой функции с интервалом, а затем просто иметь логический флаг, в котором вы отслеживаете, если мышь отсутствует или нет (или еще лучше запустить и остановить функцию $ timeout на основе вызова на событиях мыши/вверх) – shaunhusain