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 в первом варианте) |
во втором куске кода в 4-й строке надо убрать (), чтобы было onClickSimple
|
спасибо, помогло.
|
Часовой пояс GMT +3, время: 05:25. |