Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.12.2018, 22:52
Новичок на форуме
Отправить личное сообщение для tavla Посмотреть профиль Найти все сообщения от tavla
 
Регистрация: 12.12.2018
Сообщений: 2

this в функциях
всем привет.

только учу js, пишу простейший код, аналогичный radiobutton, т.е.
активным элементом становится тот, в который тыкнули мышкой,
а остальные становятся неактивными:
// рабочий код
var title = document.getElementsByClassName('accordion-title');
for (var i = 0; i < title.length; i++) {
    title[i].addEventListener('click', function () {
        if (!(this.classList.contains('active'))) {
            for (var i = 0; i < title.length; i++)
                title[i].classList.remove('active');
            this.classList.add('active');
        }
    })
}

дальше я хотел вынести функцию обработки в неанонимную функцию,
но возникла проблема с передачей в нее элемента, на котором кликнули мышкой:
// нерабочий код
var title = document.getElementsByClassName('accordion-title');
for (var i = 0; i < title.length; i++) {
    title[i].addEventListener('click', onClickSimple());
}
function onClickSimple() {
    if (!(this.classList.contains('active'))) {
        for (var i = 0; i < elements.length; i++)
            title[i].classList.remove('active');
        this.classList.add('active');
    }
}

подскажите, как для второго варианта в тело внешней функции передать активный
элемент (аналог this в первом варианте)
Ответить с цитированием
  #2 (permalink)  
Старый 12.12.2018, 22:55
Аватар для SuperZen
Профессор
Отправить личное сообщение для SuperZen Посмотреть профиль Найти все сообщения от SuperZen
 
Регистрация: 08.11.2017
Сообщений: 642

во втором куске кода в 4-й строке надо убрать (), чтобы было onClickSimple
Ответить с цитированием
  #3 (permalink)  
Старый 13.12.2018, 12:34
Новичок на форуме
Отправить личное сообщение для tavla Посмотреть профиль Найти все сообщения от tavla
 
Регистрация: 12.12.2018
Сообщений: 2

спасибо, помогло.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование $(this) в функциях Булат Азат улы Общие вопросы Javascript 14 12.10.2017 18:13
Значения аргументов в функциях высшего порядка kaang Общие вопросы Javascript 3 12.11.2015 22:55
Организация обработки исключительных ситуаций в асинхронных функциях dmsuslov AJAX и COMET 0 23.07.2015 10:33
Прошу помочь найти ошибки в функциях Georka Элементы интерфейса 1 02.10.2014 10:08
Использование одной переменной в нескольких функциях (Sandr) Общие вопросы Javascript 10 10.07.2011 13:42