@Genri_Rus

Не работает счетчик уменьшения/увеличения и появляются даблклики?

Доброго времени суток
Есть небольшой код:

<div class="myclass">
<span onClick="prev()">-</span>
<input type="text" id="counter" disabled value="1">
<span onClick="next()">+</span>
</div>


function prev(id){
    if(id===undefined){
        if(var i=("counter").value>1) i("counter").value--;
    }
    else{
        var m=i("counter"+id).value;
        if(m>1){
            m--;
        }
    }
}

function next(id){
    if(id===undefined){
        if(var i=("counter").value<20) i("counter").value++;
    }
    else{
        var m=i("counter"+id).value;
        if(m<20){
            m++;
        }
    }
}


При нажатии на span счетчик не уменьшает и не увеличивает, где может быть ошибка ?
А также появляются даблклики, как можно их убрать ?
  • Вопрос задан
  • 243 просмотра
Решения вопроса 1
KorniloFF
@KorniloFF Куратор тега JavaScript
Работаю по font-end / JS
Правильнеее оптимизировать так:
1. Использовать единую функцию
2. Сделать возможность изменения значения инкремента от 1.
Можно ещё оптимизировать навешивание событий - инлайн сейчас критикуют, но это уже не принципиально.



https://codepen.io/KorniloFF/pen/bzEORy?editors=1111
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
initrd0
@initrd0
Это я =)
if(var i("counter").value..

Это на каком языке? Сравнивать переменную, которую только что создал - странное дело.. да и блок по идентификатору получать надо через

document.getElementById('counter')

В итоге:
function prev(id){
var counter = document.getElementById('counter'+(id===undefined?'':id)).value;
document.getElementById('counter'+(id===undefined?'':id)).value = counter.value>1?counter--:counter;
}

function next(id){
var counter = document.getElementById('counter'+(id===undefined?'':id)).value;
document.getElementById('counter'+(id===undefined?'':id)).value = counter.value<20?counter++:counter;
}
Ответ написан
Если Вы имеете css-стили, то тоже скидывайте их вместе с остальным кодом, так как не совсем понятно что делают элементы на странице.
Как минимум ошибка в условностях:
20190126-9cy-28kb.jpg

Определите в отдельную переменную, а лучше напишите логику исполнения кода.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы