| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Применение библиотек > jquery, всплывающие окна |
| Автор: Ripper 23.12.2011, 23:26 | ||
| Здравствуйте. Такая проблема - нужно сделать по кликну на иконку всплывающее окно. Если кликаем еще раз - оно гаснет. Если кликаем по любому элементу на странице - оно тоже гаснет. И еще клик на иконку должен быть live, т.к. иконка подгружается в процессе. Попытка:
Но проблема в том, что когда кликаешь на иконку, то вызывается событие клика и на иконку и на body, и оно гаснет и снова появляется. Читал про stopPropagation но оно не работает для live =\ |
| Автор: ksnk 23.12.2011, 23:55 | ||
Можно даже и без лива обойтись. Можно по клику на .infoBox поставить таймаут на 10 ms и пока не тикнет таймаут - не гасить окна в клике по body. Хотя как-то странно, что stopPropagation не работает. Вроде должен.... |
| Автор: krundetz 24.12.2011, 00:33 |
| Ripper, а может стоит взять готовое решение? подогнать только дизайн. |
| Автор: Leshak 24.12.2011, 16:32 |
| Во-первых - не надо навешивать событие на body - чрева-то... - когда-то, не разобравшись с всплытием событий я решал задачу как-то так 1 - изначально создаем div размером во все окно, отрицательным z-index и visibility = hidden' и умением при клике по нему, закрывать окошко над собой и себя 2 - при нужном клике делаем наш div видимым, а над ним показываем всплывающее окно вот.. и в качестве бонуса - нашему div можно нагрузить какой-нибудь фон и полу прозрачность... |
| Автор: ksnk 24.12.2011, 18:40 |
Чем, например? |
| Автор: Ripper 25.12.2011, 01:53 |
| ksnk, твой метод отлично работает, спасибо! Только вот я не что-то не могу пофиксить такую вещь - когда мы кликаем на само окошко, оно не должно закрываться. окно соотвественно div, внутри какие то элементы типа таблиц кнопок итп. Ну я поставил еще условие else if($(e.target).is("#infoBox")) alert('infobox'); но оно срабатывает когда кликаешь именно по диву, а если например по таблице внутри то не срабатывает и окно закрывается |
| Автор: ksnk 25.12.2011, 09:03 | ||
e.target указывает непосредственно на элемент, на который кликает мышка. Нужно проверять его, и список его парентов
|
| Автор: Leshak 25.12.2011, 11:25 | ||
| ммммм... Мой вариант игр с подложкой
Даже и не вспомню сейчас - просто были проблемы с неконтролируемыми событиями |