Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2016, 09:32
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

При клике на опред. юзера всплывает его информация
Выводиться список пользователей с помощью ajax.
Нужно сделать, чтобы при клике на пользователя выводилось окно с доп. информацией этого пользователя.

Это окно уже выведено, но оно спрятано с помощью css. Просто при клике на юзера я буду добавлять ему класс, чтобы оно было видно.

Но как сделать чтобы при клике на опред. юзера открывалась именно его доп. информация?

получается перебираем сначала всех пользователей:
var user = document.querySelectorAll('.user');

это вроде массив должен получиться, и как из него достать юзера на который кликнули?

http://codepen.io/anon/pen/

Последний раз редактировалось yaparoff, 23.12.2016 в 19:41.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2016, 10:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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;
 }
Ответить с цитированием
  #3 (permalink)  
Старый 22.12.2016, 20:24
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

Сообщение от рони
yaparoff, делегирование!
рони, спасибо большое! Вы меня очень выручили!

скажите, а для чего нужен break здесь? вроде бы и без него работает

Последний раз редактировалось yaparoff, 22.12.2016 в 20:41.
Ответить с цитированием
  #4 (permalink)  
Старый 22.12.2016, 20:48
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

yaparoff,
зачем продолжать цикл если нашли искомое, да будет работать и без него, но дольше на одну миллиардную долю секунды.
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2016, 06:29
Кандидат Javascript-наук
Отправить личное сообщение для yaparoff Посмотреть профиль Найти все сообщения от yaparoff
 
Регистрация: 26.04.2016
Сообщений: 106

Сообщение от рони
yaparoff, делегирование!
сейчас все круто, но когда всплывает окно и ты кликаешь в любое место экрана - оно исчезает. Так оно и должно быть, но только если ты на само всплывшее окно не кликаешь.

Т.е. когда окно всплыло, как сделать чтобы при клике на него - оно не исчезало?

http://codepen.io/anon/pen/

Последний раз редактировалось yaparoff, 23.12.2016 в 19:40.
Ответить с цитированием
  #6 (permalink)  
Старый 23.12.2016, 09:59
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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
    }
});
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Переопределение поведения при клике на ссылку dyosick Events/DOM/Window 2 07.02.2012 19:56
Запись cookes при клике pavdin Общие вопросы Javascript 3 06.02.2012 17:19
закрыти diva при клике вне его Hugo_O Элементы интерфейса 14 21.05.2010 14:39
Закрыть элемент при клике вне его masterm Общие вопросы Javascript 3 31.07.2009 11:27