@Shtosh

Как скрыть родителя и всех его потомков кликом на потомка?

Здравствуйте.
Дело вот в чем. Решил организовать всплывающее окно после загрузки страницы, и захотелось, чтобы при нажатии на дочернюю темную область закрывался родительский элемент, тобишь чтобы окно и затемнение полностью убиралось. Организовал. Работало. Но потом дополнил код конфетти, и всё поломалось.
Разбираюсь в JS плохо, не могу понять почему не хочет работать.
<div id="sale">
        <div class="cat">
            Окошко с карточкой-скидкой
        </div>
        <!--Для конфетти-->
        <script src="js/confetti-js/dist/index.min.js"></script>
        <canvas id="mycanvas"></canvas>
        <script>
            var confettiSettings = {
                target: 'mycanvas'
            };
            var confetti = new ConfettiGenerator(confettiSettings);
            confetti.render();
            React.useEffect(() => {
                const confettiSettings = {
                    target: 'mycanvas'
                };
                const confetti = new ConfettiGenerator(confettiSettings);
                confetti.render();

                return () => confetti.clear();
            }, [])
        </script>




    </div>
    <script ENGINE="text/javascript">
        var delay_popup = 6000;
        setTimeout("document.getElementById('sale').style.display='block'", delay_popup);
    </script>
    <script>
        $("canvas").click(function(e) {
            if ($(e.target).closest("sale").length == 0) $("sale").css("display", "none");
        });
    </script>


Руководствовался этим xiper.net/collect/js-plugins/ui/closepopup
Где ошибка? Как организовать закрытие родителя при клике на конфетти?5ec406caab0c6640563914.png
  • Вопрос задан
  • 260 просмотров
Пригласить эксперта
Ответы на вопрос 1
hzzzzl
@hzzzzl
... ($(e.target).closest("sale")

попробуй поменять все "sale" на "#sale", потому что по айдишнику элементы выделяют с #
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы