Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Появление/исчезновение дива при клике на ссылку (https://javascript.ru/forum/jquery/35228-poyavlenie-ischeznovenie-diva-pri-klike-na-ssylku.html)

nickostyle 04.02.2013 15:37

Появление/исчезновение дива при клике на ссылку
 
Есть ссылка
<a href="#">меню</a>


Нужно чтобы при клике на нее появлялся блок. При этом ссылка должна получить класс active. При повторном клике на ссылку, или при клике на body блок должен исчезнуть.

Проект работает с jquery. Так что его использование допускается. Сам решить не могу, т.к. работаю в графических редакторах) Хочется простое и элегантное решение. Заранее признателен!

Hoshinokoe 04.02.2013 16:23

nickostyle,
<a id="link1" href="#">Click me</a>
<div id="content1" style="display: none;">Content should be here!</div>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
    $(document).ready(function () {
        $('a#link1').click(function (e) {
            $(this).toggleClass('active');
            $('#content1').toggle();
                
            e.stopPropagation();
        });

        $('body').click(function () {
            var link = $('a#link1');
            if (link.hasClass('active')) {
                link.click();
            }
        });
    });

</script>

nickostyle 04.02.2013 22:23

большое спасибо вам! Работает на отлично. Если несложно, не подскажете, что добавить, чтобы блок не исчезал при клике на него ? :)

Hoshinokoe 04.02.2013 22:28

nickostyle,

$(document).ready(function () {
        $('a#link1').click(function (e) {
            $(this).toggleClass('active');
            $('#content1').toggle();
                
            e.stopPropagation();
        });

        $('#content1').click(function (e) {
            e.stopPropagation();
        });

        $('body').click(function () {
            var link = $('a#link1');
            if (link.hasClass('active')) {
                link.click();
            }
        });
    });

bullshmaiser 02.05.2013 17:40

а как сделать чтоб появившийся див исчезал, если убрать мышь, а не кликать повторно?

alex72bel 18.01.2016 03:03

Hoshinokoe,
Подскажите как сделать так, чтобы блок например при клике выскакивал не вниз а вверх?


Часовой пояс GMT +3, время: 03:09.