Как сделать onFocus, если объектов несколько?
Здравствуйте. Есть вот такое на jquery
$(".form-input").focus(function() { $(this).siblings('label').addClass('active'); }); $(".form-input").focusout(function() { if ($(this).val() != false) { $(this).siblings('label').addClass('active'); } else { $(this).siblings('label').removeClass('active'); } }); Оно работает, как часы, но мне надо на чистом JavaScript. Я написала это, но оно работает только с первым элементом. Form-input у меня несколько. function q(e){return document.querySelector(e);} q(".form-input").onfocus = function() { this.nextElementSibling.classList.add("active"); }; q(".form-input").onblur = function() { if (this.value != false) { this.nextElementSibling.classList.add("active"); } else { this.nextElementSibling.classList.remove("active"); } }; подскажите, как сделать, чтобы класс добавлялся ко всем нажимаемым элементам |
document.querySelectorAll(".form-input").forEach( el => { el.onfocus = function() { this.nextElementSibling.classList.add("active"); }; el.onblur = function() { if (this.value != false) { this.nextElementSibling.classList.add("active"); } else { this.nextElementSibling.classList.remove("active"); } } } ); |
voraa, а если 7-11 заменить на classList.toggle ?
|
Цитата:
Там же добавление/удаление класса у следующего элемента идет не в зависимости от его наличия, а в зависимости от значения текущего элемента. |
Цитата:
|
Цитата:
|
Цитата:
По мне toggle должна делать toggle, а для add и remove есть другие функции. Так код понятнее |
Цитата:
a += b + c a += b + c a += b + c .... сколько нужно, это понятнее. :) |
Есть функция функция appendChild(node), а чего бы ей не прикрутили еще один параметр, что бы она могла удалять элемент?
а.appendChild(b) - добавляет элемент а.appendChild(b, false) - удаляет элемент Удобно же. |
Удобно, только имя функции в данном случае иное было бы как минимум.
Не всегда используют тернарный оператор тоже ссылаясь на "непонятки". А чего в нем непонятного, все просто и лаконично. Это уже привередливость, а не доводы. А если не хочется и ладно, но ведь и борщ не обязательно любят все, но это не значит, что он как блюдо не имеет право на существование. :) |
Часовой пояс GMT +3, время: 09:50. |