При клике на опред. юзера всплывает его информация
Выводиться список пользователей с помощью ajax.
Нужно сделать, чтобы при клике на пользователя выводилось окно с доп. информацией этого пользователя. Это окно уже выведено, но оно спрятано с помощью css. Просто при клике на юзера я буду добавлять ему класс, чтобы оно было видно. Но как сделать чтобы при клике на опред. юзера открывалась именно его доп. информация? получается перебираем сначала всех пользователей: var user = document.querySelectorAll('.user'); это вроде массив должен получиться, и как из него достать юзера на который кликнули? http://codepen.io/anon/pen/ |
yaparoff, делегирование!
usersList.addEventListener("click", function(event) { var target = event.target; while (target != usersList) { if (target.classList.contains("user")) { target.querySelector(".user__info").classList.toggle("visible"); break } target = target.parentNode } }); css только для примера .user__info.visible { visibility: visible; left: 0; } |
Цитата:
скажите, а для чего нужен break здесь? вроде бы и без него работает |
yaparoff,
зачем продолжать цикл если нашли искомое, да будет работать и без него, но дольше на одну миллиардную долю секунды. :) |
Цитата:
Т.е. когда окно всплыло, как сделать чтобы при клике на него - оно не исчезало? http://codepen.io/anon/pen/ |
yaparoff,
usersList.addEventListener("click", function(event) { var target = event.target, close = target.classList.contains("user__close"); while (target != usersList) { if (target.classList.contains("user__content") && !close) break; if (target.classList.contains("user")) { target.querySelector(".user__info").classList.toggle("visible"); break } target = target.parentNode } }); |
Часовой пояс GMT +3, время: 05:41. |