Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 04.01.2016, 13:53
Аспирант
Отправить личное сообщение для Павел Турченко Посмотреть профиль Найти все сообщения от Павел Турченко
 
Регистрация: 18.04.2015
Сообщений: 47

Оптимизировать инпут-счетчик
Добрый день, на старнице есть инпут счетчик для интернет магазина (укажите количество товаров + и -)

HTML:
<div class="input-group spinner">
	<input type="text" class="form-control" value="1">
	<div class="input-group-btn-vertical">
		<button class="btn btn-default" type="button">+</button>
		<button class="btn btn-default" type="button">&ndash;</button>
	</div>
</div>

Его я реализовал вот таким Js:
$(document).ready(function ($) {
  $('.spinner .btn:first-of-type').on('click', function() {
    $('.spinner input').val( parseInt($('.spinner input').val(), 10) + 1);
  });
  $('.spinner .btn:last-of-type').on('click', function() {
    $('.spinner input').val( parseInt($('.spinner input').val(), 10) - 1);
  });
})


Но проблема в том, что этих счетчиков до 10-20 штук на странице, а когда кликаешь, то он изменяет значения во всех инпутах на странице, как-то можно сделать, что бы изменял, только в том инпуте, на котором клик происходит.(и желателно не через id, то можно с ума будет сойти)
Заранее спасибо!
Ответить с цитированием
  #2 (permalink)  
Старый 04.01.2016, 14:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Делегируйте обработку родителю кнопок input-group-btn-vertical, а их индекс в наборе будет определять операцию +/-. Поле ввода легко найти у родителя, хотя для input-group-btn-vertical, это и проще будет - .prev().
Ответить с цитированием
  #3 (permalink)  
Старый 04.01.2016, 14:44
Аспирант
Отправить личное сообщение для Павел Турченко Посмотреть профиль Найти все сообщения от Павел Турченко
 
Регистрация: 18.04.2015
Сообщений: 47

laimas,
мощно задвинул.... я даже ничего не понял, можно как-то попроще)
Ответить с цитированием
  #4 (permalink)  
Старый 04.01.2016, 14:52
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Павел Турченко,
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
 $(function() {
    $(".spinner").each(function(c, b) {
        $(b).on("click", ".btn-default", function() {
            var a = $(".form-control", b)[0];
            $(".btn-default", b).index(this) ? a.value-- : a.value++;
            0 > a.value && (a.value = 0)
        })
    })
});
  </script>
</head>

<body>
<div class="input-group spinner">
	<input type="text" class="form-control" value="1">
	<div class="input-group-btn-vertical">
		<button class="btn btn-default" type="button">+</button>
		<button class="btn btn-default" type="button">&ndash;</button>
	</div>
</div>
<div class="input-group spinner">
	<input type="text" class="form-control" value="1">
	<div class="input-group-btn-vertical">
		<button class="btn btn-default" type="button">+</button>
		<button class="btn btn-default" type="button">&ndash;</button>
	</div>
</div>

</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 04.01.2016, 15:13
Аспирант
Отправить личное сообщение для Павел Турченко Посмотреть профиль Найти все сообщения от Павел Турченко
 
Регистрация: 18.04.2015
Сообщений: 47

рони,
большое спасибо! я бы поставил + к карме, но не пускает программа сайта, говорит, что бы я плюсанул кому-то другому....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Счетчик обратного времени (эпоха unix) skillful AJAX и COMET 0 07.07.2014 17:09
функция не реагирует инпут imedia Элементы интерфейса 9 22.05.2014 16:31
если количество символов в инпут техте не достаточно, то "сказат" ето ползователу dadli Элементы интерфейса 6 17.10.2011 01:55
добавить счетчик в счетчик dimon76 Events/DOM/Window 1 28.06.2011 23:06
Помогите усовершенствовать счетчик fredrsf Элементы интерфейса 1 30.06.2010 15:38