Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 02.06.2022, 00:02
Новичок на форуме
Отправить личное сообщение для wainzor Посмотреть профиль Найти все сообщения от wainzor
 
Регистрация: 01.06.2022
Сообщений: 6

Два события (попап) на одном клике
Добрый вечер! Прошу помочь. Суть такая есть два модальных окна, и гифка.На гифку добавил два класса для вызова модалок, При нажатии на гифку 1 раз должно появляться первое модальное окно, при нажатии второй раз должно появляться только второе. Я новичек, вот попробовал что то накидать но получилось наполовину, при первом клике появляется окно 1, при втором клике появляется сразу 2 окна и первое и второе, а должно только второе..
let numOfClicks = 0;
const $elem = $(".gifka");
$elem.on('click', () => {
++numOfClicks;
if(numOfClicks % 2 !== 0 ) fadeIn('$.modal1');
else $('.modal2');
});
Ответить с цитированием
  #2 (permalink)  
Старый 02.06.2022, 00:10
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

wainzor,
а если нажать в третий раз?
Ответить с цитированием
  #3 (permalink)  
Старый 02.06.2022, 00:17
Новичок на форуме
Отправить личное сообщение для wainzor Посмотреть профиль Найти все сообщения от wainzor
 
Регистрация: 01.06.2022
Сообщений: 6

Сообщение от рони Посмотреть сообщение
wainzor,
а если нажать в третий раз?
в третий раз не нажмешь, суть такая что вторая модалка блокирует экран и дальше только переход по ссылке которая в модалке
Ответить с цитированием
  #4 (permalink)  
Старый 02.06.2022, 00:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

wainzor,
<!DOCTYPE html>
<html>

<head>
    <title>Untitled</title>
    <meta charset="utf-8">
    <style type="text/css">
        .modal1,
        .modal2 {
            display: none;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            const $elem = $(".gifka"),
                modal = $('.modal1, .modal2').toArray();
           
            $elem.on('click', () => {
                let [a, b] = modal;
                $(a).fadeIn();
                $(b).fadeOut();
                modal.reverse()
            });

        });
    </script>
</head>

<body>
    <img src="https://javascript.ru/forum/images/smilies/smile.gif" alt="" class="gifka">
    <div class="modal1">modal1</div>
    <div class="modal2">modal2</div>
</body>

</html>
Ответить с цитированием
  #5 (permalink)  
Старый 02.06.2022, 01:32
Новичок на форуме
Отправить личное сообщение для wainzor Посмотреть профиль Найти все сообщения от wainzor
 
Регистрация: 01.06.2022
Сообщений: 6

Спасибо!Теперь правда другая проблема, почему-то на первое модальное окно не закрывается по кнопке, хотя в ссылке хэш поставил.Вот сама модалка,может поскажете что это может быть?
<div class="modal">
<div class="modal__body">
<div class="modal__content">
<h2 class="modal__title">Title</h2>
<a class="modal__close" href="#">X</a>
</div>
</div>
</div>
Ответить с цитированием
  #6 (permalink)  
Старый 02.06.2022, 08:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

wainzor,
сделайте макет
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.
Ответить с цитированием
  #7 (permalink)  
Старый 02.06.2022, 12:17
Новичок на форуме
Отправить личное сообщение для wainzor Посмотреть профиль Найти все сообщения от wainzor
 
Регистрация: 01.06.2022
Сообщений: 6

Вот, пожалуйста. Теперь при клике на гифку при первом открывается модал1 , при втором модал2.Но проблема в том что у меня модальный экран требует, чтобы пользователи закрывали окно, прежде чем они снова смогут использовать основную навигацию сайта, для того чтобы нажать на гиф второй раз и получается закрываться оно должно без обновления страницы, чтобы завершить цикл и нажать второй раз на гиф. А оно не закрывается
Поставить в href хэш или ? дает что страница просто перезагружается и цикл запускается по новой не доходя до второго клика.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        .modal1,
        .modal2 {
            display: none;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            const $elem = $(".gifka"),
                modal = $('.modal1, .modal2').toArray();
            $elem.on('click', () => {
                let [a, b] = modal;
                $(a).fadeIn();
                $(b).fadeOut();
                modal.reverse()
            });
        });
        </script>
</head>
<body>
    <img src="https://javascript.ru/forum/images/smilies/smile.gif" alt="" class="gifka">
    <div class="modal1">
        <div class="modal__body">
            <div class="modal__content">
                <h2 class="modal__title">Title</h2>
                <a  class="modal__close" href="">X</a>  
            </div>
        </div>
    </div>
    <div class="modal2">
        <div class="modal__body">
            <div class="modal__content">
                <h2 class="modal__title">Title2</h2>
                <a  class="modal__close" href="?">X</a>  
            </div>
        </div>
    </div>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 02.06.2022, 14:06
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,126

Сообщение от wainzor
закрываться оно должно без обновления страницы,
добавлено
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style type="text/css">
        .modal1,
        .modal2 {
            display: none;
        }
    </style>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script>
        $(function() {
            const $elem = $('.gifka'),
                modal = $('.modal1, .modal2').toArray();
            $elem.on('click', () => {
                let [a, b] = modal;
                $(a).fadeIn();
                $(b).fadeOut();
                modal.reverse()
            });
            $('.modal__close').on('click', function(event) {
                    if (this.closest('.modal1')) {
                        event.preventDefault();
                        $('.modal1').fadeOut();
                    }
                }
            );
        });
    </script>
</head>
<body>
    <img src="https://javascript.ru/forum/images/smilies/smile.gif" alt="" class="gifka">
    <div class="modal1">
        <div class="modal__body">
            <div class="modal__content">
                <h2 class="modal__title">Title</h2>
                <a class="modal__close" href="">X</a>
            </div>
        </div>
    </div>
    <div class="modal2">
        <div class="modal__body">
            <div class="modal__content">
                <h2 class="modal__title">Title2</h2>
                <a class="modal__close" href="">X</a>
            </div>
        </div>
    </div>
</body>
</html>
Ответить с цитированием
  #9 (permalink)  
Старый 02.06.2022, 15:40
Новичок на форуме
Отправить личное сообщение для wainzor Посмотреть профиль Найти все сообщения от wainzor
 
Регистрация: 01.06.2022
Сообщений: 6

БОЛЬШОЕ ОГРОМНОЕ ВАМ СПАСИБО!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать два события на одно нажатие кнопки mixt Events/DOM/Window 11 30.09.2017 20:44
можно ли на объект повесить два события одновременно? andrew_F Общие вопросы Javascript 5 30.04.2012 14:51
Два блока div разъезжаются при скроллинге окна браузера. call007 jQuery 0 03.04.2011 16:21
Как на два события назначить одну функцию shaltay jQuery 2 28.02.2011 15:50
Блок переключения меню на JS, два скрипта в одном файле Dizeloid Элементы интерфейса 0 30.07.2009 12:03