Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Получить элемент относительно текущего, над которым произошло действие (https://javascript.ru/forum/jquery/27901-poluchit-ehlement-otnositelno-tekushhego-nad-kotorym-proizoshlo-dejjstvie.html)

Киноман 29.04.2012 00:25

Получить элемент относительно текущего, над которым произошло действие
 
Всем привет! я тут новичек, заранее прошу не кидаться тапками, если вопрос покажется слишком простым. Часа 4 ищу ответа, не нашел!

Так вот:есть ссылка, под ней скрытый div, по клику по ссылке хочу сделать див видимым. Так то это вообще как говорится азы, НО: у меня целый список таких ссылок с одинаковым путем, обращаюсь к ним через id родительского дива, скрытые блоки тоже с одинаковыми id под каждой такой ссылкой. Соответственно надо: по клику по конкретной ссылке, сменить свойство css для блока, который находится следом (элемент брат кажись выбирается через +), но вот вопрос - как двигаться от именно того элемента по которому кликнули?? как-то через $this? не соображу что-то!

Структура такая:

<div class="block1">
<a href="#">Ответ</a>
</div>
<div class="block2">...</div>


Так вот: клик по сслыке в диве block1 запускает функцию в которой совершаются действия над дивом block2 (именно над ближайшим,т.к. их полно,равно как и ссылок).

Заранее всем спасибо :)

devote 29.04.2012 01:01

<!DOCTYPE html>
<html>
    <head>
        <script type="text/javascript" src="http://code.jquery.com/jquery.min.js"></script>
        <style type="text/css">
            .block2 {
                display: none;
            }
        </style>
    </head>
    <body>
        <div class="block1">
            <a href="#">Ответ</a>
        </div>
        <div class="block2">...</div>
        <div class="block1">
            <a href="#">Ответ</a>
        </div>
        <div class="block2">...</div>

        <script type="text/javascript">
            $( ".block1 a" ).click( function() {
                $( this ).parent().next().toggle();
                return false;
            });
        </script>
    </body>
</html>

Киноман 30.04.2012 00:24

Работает отлично, то что надо))
 
Отлично, не ожидал такого быстрого ответа:) вот про метод parent забыл напрочь, а про next() даже не знал! Все работает отлично!

devote + в карму и спасибо))


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