#javascript #jquery #events
#javascript #jquery #Мероприятия
Вопрос:
У меня есть два элемента ввода файла. Я хочу, чтобы change
событие срабатывало только в том случае, если событие происходит для обоих элементов.
Прямо сейчас событие запускается немедленно, если один из каждого получает файл
$(function (){
$(".main_input, .second__input").on("change", ()=>{
// do stuff
});
});
Я попытался реализовать and
оператор, но не знаю, как переписать его в синтаксис jQuery
if ($(".main_input") amp;amp; $(".second__input")).on("change", ())
Ответ №1:
Событие изменения не зависает. Вам нужно будет посчитать
$(function () {
const events = []
$(".main_input, .second_input").on("change", (e)=>{
const tgt = e.target;
const isMain = $(tgt).hasClass("main_input");
const isSecond = $(tgt).hasClass("second_input");
if (isMain) events.push("main")
if (isSecond) events.push("second")
console.log(events)
if (events.length === 2) {
console.log("both have been changed")
}
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
#1 <input type="file" class="main_input"><br/>
#2 <input type="file" class="second_input"><br/>
Комментарии:
1. ваше решение, похоже, не работает для меня, код не выдает никаких выходных данных,
$(this).hasClass("second__input");
так или иначе, другой ввод возвращает false, даже если я могу выбрать класс на вкладке разработчика браузера2. Я не заметил () =>, что означает, что мне нужно передать событие. См. Уведомление об обновлении, которое я изменил
second__input
наsecond_input