Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 26.11.2018, 14:33
Аспирант
Отправить личное сообщение для Tipylja Посмотреть профиль Найти все сообщения от Tipylja
 
Регистрация: 17.04.2017
Сообщений: 72

Ошибка, при попытке повесить обработчик
Здравствуйте. Подскажите пожалуйста, пытаюсь повесить обработчик на событие "blur" на инпате и получаю ошибку.
Код:
Uncaught TypeError: a.log is not a function
    at HTMLInputElement.a.(:3000/anonymous function).addEventListener (http://localhost:3000/js/all.js:1:793)
Хотя обработчик на "фокус" срабатывает нормально. Вот код:
window.addEventListener('DOMContentLoaded', (e) => {
    let controls = document.getElementsByClassName('input__control');
    for(let i = 0;  i<controls.length; i++){
        controls[i].addEventListener('focus', (e)=>{
            let input = e.target.closest('.input');
            input.classList.add("input_focused");            
            console.log(controls[i]);//Тест
            controls[i].addEventListener("blur", (e)=>{
                controls.log('111');//Тест               
            })
        })
    }
});

Вот HTML:
<span class="input input_size-l search__input">
          <span class="input__box">
                  <input class="input__control" placeholder="Что ищите?" name="search" id="search" value="">
            </span>
</span>
Ответить с цитированием
  #2 (permalink)  
Старый 26.11.2018, 14:49
Аспирант
Отправить личное сообщение для Tipylja Посмотреть профиль Найти все сообщения от Tipylja
 
Регистрация: 17.04.2017
Сообщений: 72

Решил вот так:
window.addEventListener('DOMContentLoaded', (e) => {
    let controls = document.getElementsByClassName('input__control');
    for(let i = 0;  i<controls.length; i++){
        controls[i].addEventListener('focus', (e)=>{
            let input = e.target.closest('.input');
            if(!input.classList.contains("input_focused")){
                input.classList.add("input_focused");
            }
        });
        controls[i].addEventListener('blur', (e)=>{
            let input = e.target.closest('.input');
            if(input.classList.contains("input_focused")){
                input.classList.remove("input_focused");
            }
        })
    }
});

Но все ранво не могу понять, почему в первом примере не вешался обработчик
Ответить с цитированием
  #3 (permalink)  
Старый 26.11.2018, 14:49
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

controls.log('111');//Тест
9 строка нет на винде такого метода
Ответить с цитированием
  #4 (permalink)  
Старый 26.11.2018, 14:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Сообщение от Tipylja
почему в первом примере не вешался обработчик
первый пример полная хрень, вешать новый обработчик при каждом событии фокус.
Ответить с цитированием
  #5 (permalink)  
Старый 26.11.2018, 14:57
Аспирант
Отправить личное сообщение для Tipylja Посмотреть профиль Найти все сообщения от Tipylja
 
Регистрация: 17.04.2017
Сообщений: 72

Сообщение от j0hnik Посмотреть сообщение
controls.log('111');//Тест
9 строка нет на винде такого метода
Да уж=))Спасибо за то, что тыкнули
Сообщение от j0hnik Посмотреть сообщение
первый пример полная хрень, вешать новый обработчик при каждом событии фокус.
Спасибо за пояснение, только учусь, действительно ерундово вышло
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка при установке babel DVV Элементы интерфейса 0 01.09.2018 14:07
Ошибка при парсинге значения «margin-left» huckfinn Ваши сайты и скрипты 8 11.03.2018 08:00
Java Script, активация кнопки при попытке редактирования формы Алекс_ Элементы интерфейса 2 07.05.2015 05:18
Ошибка при двух одновременных ajax запросах. vuler Общие вопросы Javascript 0 11.12.2014 22:56
Ошибка при добавлении обработчика к событию Riim Events/DOM/Window 32 19.01.2010 14:17