Функция для изменения значения input-a
Всем привет.
В нескольких местах страницы есть html:
<div class="input-count">
<input type="text" name="quantity" value="1.8" />
<div class="plus-minus">
<div class="up">
<i class="fa fa-caret-up"></i>
</div>
<div class="down">
<i class="fa fa-caret-down"></i>
</div>
</div>
</div>
Задача: написать функцию, которая по клику на i соответственно уменьшала/увеличивала value у input-a на 0,1. Задайте, пожалуйста, направление движения. Какие функции и алгоритм подойдут для этой цели? |
Цитата:
|
Цитата:
|
<style>
i {
width: 20px;
height: 20px;
border: 2px solid #ccc;
display: inline-block;
text-align: center;
}
.fa-caret-up:before {
content: '+'
}
.fa-caret-down:before {
content: '-'
}
</style>
<div class="input-count">
<input type="text" name="quantity" value="1.8" />
<div class="plus-minus">
<div class="up">
<i class="fa fa-caret-up"></i>
</div>
<div class="down">
<i class="fa fa-caret-down"></i>
</div>
</div>
</div>
<script>
document.onclick = function(e) {
if ( !e.target.classList.contains('fa') ) return;
var inpElem = e.target.closest('.input-count').querySelector('input[type=text]'),
val = +inpElem.value;
e.target.classList.contains('fa-caret-up') && (val += 0.1);
e.target.classList.contains('fa-caret-down') && (val -= 0.1);
inpElem.value = val.toFixed(1);
};
</script>
|
Спасибо. Код задачу решает. Но хотелось бы именно направление решения данной задачи на Jquery. Какие функции, атрибуты и алгоритм подойдут для этой цели?
|
Цитата:
$('.input-count').on('click', '.fa', function(e) {
var inpElem = $(this).closest('.input-count').find('input[type=text]'),
val = +inpElem.val();
$(this).hasClass('fa-caret-up') && (val += 0.1);
$(this).hasClass('fa-caret-down') && (val -= 0.1);
inpElem.val( val.toFixed(1) );
});
|
| Часовой пояс GMT +3, время: 14:43. |