Постоянная проверка if

1019
06 марта 2017, 12:04

Есть код

if ( $("#payment").hasClass("checked") ) {
document.getElementById("uniform-id_carrier1300").style.display='none';
} else {
document.getElementById("uniform-id_carrier1300").style.display='block';
}

При его выполнение все работает, но один раз. Хотелось бы, чтобы шла постоянная проверка названия класса. То есть, если элемент имеет название класса "чекед", то скрыть элемент, если у этого элемента нету в названии класса "чекед" то показать.

Answer 1

В реализацию вашего чекбокса можно добавить эмиссию события смены состояния.

Найдите место, где меняется класс checked. Это либо .toggleClass('checked'), либо пара addClass/removeClass в разных местах.

В каждом добавьте эмиссию события change:

$(this).trigger('change', [checked]); // checked - bool состояние чекбокса

Вместо this возможно придётся написать другую переменную, указывающую на меняющийся элемент.

Тогда, в клиентском коде вы сможете отловить это событие:

$('#payment').on('change', function(e, checked){
  $('#blockToToggle')[checked?'show':'hide']();
});
Answer 2

Поставьте проверку на значение чекбокса при его изменении, и в этом же месте скрывайте или показывайте нужный блок.

Следить за изменением можно этим - https://api.jquery.com/change/

READ ALSO
Глобальная перемена JavaScript

Глобальная перемена JavaScript

вот вызов функции

329
build frontend проекта с jquery bootstrap на grunt gulp

build frontend проекта с jquery bootstrap на grunt gulp

возможно ли сделать так что все собственно написанные исходники и исходники из папки npm_modules строились(компилировались) в папку с публичной...

266
Добавление элементов в select

Добавление элементов в select

ЗдравствуйтеПытаюсь сделать чтобы при изменении выбора в одном select в другой select добавлялся элемент:

337
Как в jquery each получить следующий элемент

Как в jquery each получить следующий элемент

Мне нужно сравнить два элемента из массива который выводится в $each() как я могу сравнить эти два элемента? Или как я могу вывести конкретный...

339