Стилизованный input number
Есть стилизованный JS инпут, в рамках большого скрипта, пытаюсь сделать чтобы при событие нажатия на ЛКМ (onmousedown) он изменял значение, он изменяет, но естественно один раз, пробовал сделать через setinterval чтобы тело функции запускалось раз в 300мс, а на onmouseup поставить сброс, но почему то не работает.
$$('.up, .down', box).forEach((el)=>{
el.onclick = ()=>{
this.activatenumber(el);
this.sumForm(form);
form.dispatchEvent(new Event("change"));
}
});
Буду очень признателен за помощь с таким вариантом или советы как сделать по другому. Мне нужно чтобы при нажатие на стилизованную кнопку - значение поля увеличивалось или уменьшалось без необходимости каждый раз кликать (как это работает в браузере по дефолту). |
Ops,
как вариант ...
let timer;
$$('.up, .down', box).forEach((el) => {
el.onmousedown = () => {
window.clearInterval(timer);
let tt = this;
timer = window.setInterval(() => {
tt.activatenumber(el);
tt.sumForm(form);
form.dispatchEvent(new Event("change"));
}, 350)
};
el.onmouseup = () => {
window.clearInterval(timer);
}
});
|
Работает, спасибо! Понял вы this поместили в переменную, поэтому не работало :)
|
Шо? Помещение this в переменную тут вообще ни к чему. А заработало оно потому что рони сделал именно то, что ты описан в вопросе. =\
|
| Часовой пояс GMT +3, время: 22:00. |