Статус checkbox сразу после нажатия

225
21 февраля 2017, 19:10

Доброго времени суток.

Внутри div есть несколько label с checkbox и span. В оригинале сами чекбоксы скрыты - есть только span по которому можно кликнуть и повлиять через него на чекбокс.

С помощью jquery я пытаюсь найти все отмеченные чекбоксы. И если найден хоть один - заношу его класс в массив.

Проблема - всё работает с запаздыванием в один клик. Если кликнуть по чекбоксу, то jquery отрабатывает быстрее, чем чекбокс отметится. Как это решить? Понимаю, что можно: при нажатии на span посмотреть в каком состоянии связанный с ним sheckbox. Если не нажат, то в скрипте будем считать, что он нажат и т.п. Но это перекруты какие-то... Можно ли это как-то обычно сделать?

jQuery("span").click(function(event) { 
  my_arr = new Array(); 
  jQuery('#all input:checkbox:checked').each(function() { 
    my_arr.push($(this).attr('class')); 
    return false; 
  }); 
  console.log(my_arr); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id='all'> 
  <label> 
     <input type="checkbox" name="filter" class="hull" value="to92"> 
     <span class="hull">to92</span> 
  </label> 
  <label> 
     <input type="checkbox" name="filter" class="hull" value="to91"> 
     <span class="hull">to91</span> 
  </label> 
</div>

Answer 1

jQuery("input:checkbox").change(function(event) { 
  my_arr = []; 
  jQuery('#all input:checkbox:checked').each(function() { 
    my_arr.push($(this).attr('class')); 
    return false; 
  }); 
  console.log(my_arr); 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
<div id='all'> 
  <label> 
     <input type="checkbox" name="filter" class="hull" value="to92"> 
     <span class="hull">to92</span> 
  </label> 
  <label> 
     <input type="checkbox" name="filter" class="hull" value="to91"> 
     <span class="hull">to91</span> 
  </label> 
</div>

READ ALSO
Работа с одинаковыми классами в JQuery

Работа с одинаковыми классами в JQuery

Всем приветСама суть я думаю понятна из заголовка

344
Анимация и движение к заданной точке при нажатии на кнопку

Анимация и движение к заданной точке при нажатии на кнопку

Вопрос носит больше теоретический характер, наверноеСуть в чём: на сайте lostfilm обновили дизайн и сделали помимо всего остального то, что привлекло...

409
Woocommerce. Количество товара в корзине и общая цена. Проблема с обновлением

Woocommerce. Количество товара в корзине и общая цена. Проблема с обновлением

ПриветствуюВозникла проблема с корзиной вукомерса, количество товара в полях ввода обновляется, но не сохраняется, из чего следует другая...

841
Как работает [ScriptIgnore]?

Как работает [ScriptIgnore]?

При разработке небольшого приложения на ASPNET MVC, столкнулся с такой проблемой, что когда мой контрол возвращал данные в формате JSON, то возникала...

295