$(function(){
function showModal(id){
$(document.body).addClass('is-open-modal');
$(id).addClass('modal-active');
console.log(id);
}
function hideModals(){
$(document.body).removeClass('is-open-modal');
$('.modal').removeClass('modal-active');
}
$('#button').on('click', function(e){
console.log(e);
showModal('#modal');
});
$(document).on('click', function(e){
if (!(
($(e.target).parents('.modal-block').length)
|| ($(e.target).hasClass('modal-block'))
|| ($(e.target).hasClass('modal-open')))
) {
hideModals();
}
});
});
.modal
/* Основное модальное окно */
display: none
position: fixed
top: 0
left: 0
z-index: 99
width: 100%
height: 100%
background-color: rgba(#000, 0.5)
&-active
display: flex !important
&-block
position: fixed
top: 50%
left: 50%
transform: translate(-50%, -50%)
width: 407px
z-index: 100
background-color: #fff
border: 1px solid #555
<!-- Вход в modal справа -->
<aside class="modal-right modal-open" id="button">
<div class="modal-right__window"><a>Консультация бесплатно</a></div>
</aside>
<!-- модальное окно -->
<div class="modal" id="modal">
<div class="modal-block">
<button class="modal-block__close" id="close"></button>
<!-- /.modal-block__close -->
<div class="modal-block__list">
<div class="modal-block__title">
<h1>Консультация бесплатно</h1>
<h3>Оставьте, пожалуйста, ваши координаты и мы с Вами свяжемся.</h3>
</div>
<form action method="POST" id="form">
<input type="text" name="name" id="name" placeholder="Введите Имя">
<input type="text" name="phone" id="phone" placeholder="Телефон">
<input type="text" name="email" id="email" placeholder="Email">
<input type="text" name="theme" id="theme" placeholder="Вид работы">
<input type="text" name="place" id="place" placeholder="Место расположения объекта">
<input type="text" name="area" id="area" placeholder="Площадь помещения">
<textarea name="wishes" id="wishes" placeholder="Ваши пожелания"></textarea>
<button id="submit" type="submit">Отправить</button>
</form>
<!-- /.modal-block__title -->
</div>
<!-- /.modal-block__list -->
</div>
<!-- /.modal-block -->
</div>
<!-- /.modal -->
Открываю инспектор, там видно что что-то происходит, мне кажется класс добавляет и сразу же удаляется, не понимаю в чем проблема...
у вас имеется два обработчика клика. Первый - клик кнопки, которая открывает модальное окно. Второй - общий клик на документе. Очевидно, что во втором вы хотите закрывать окно, если клик был выполнен за пределами этого самого окна.
Возможно, вы думаете, что обработав клик кнопки #button
цепочка событий прерывается (а ведь кнопка, расположена за пределами этого окна), но это не так. Событие всплывает дальше по всем родительским элементам, и добирается до вашего второго обработчика, который в свою очередь смотрит, что кнопка не пренадлежала модалке, и закрывает все. Так что вам требуется предотвратить всплытие события клика вверх по DOM, используя event.stopPropagation()
$('#button').on('click', function(e){
e.stopPropagation();
console.log(e);
showModal('#modal');
});
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
ВNET есть такое понятие, как большой объект - это объект весящий более 85,000 байт
Есть несколько вкладок в TabcontrolХочу получить список чекбоксов, которые прокликаны
Возникла проблема с отрисовкой PNG/JPG изображения с применением библиотеки SharpGLКаким образом это можно устроить?
Я написал скрипт в котором после изменения localScale у объекта хочу получить значения bounds, но renderer не меняет значения bounds, как решить эту проблему?