Пожалуйста помогите со скриптом

Главные вкладки

Аватар пользователя goodchelovek goodchelovek 13 октября 2011 в 22:35

Есть такой код:

<a href="#" class="togg-link">ПРИМЕР! Нажмите здесь и контент раскроется ниже</a>
<div class="togg" style="border: 1px solid green; padding: 5px; margin: 5px;">
Это контент. Smile
Он раскрылся динамически
</div>

и скрипт типа чтоб текст раскрывался

Drupal.behaviors.togg = function (context) {
        $("div.togg").toggle(0);
        $('a.togg-link:not(.togg-processed)', context).addClass('togg-processed').each(function() {
                $(this).click(function() {
                        $("div.togg").toggle(200);
                return false;
                });
        });
};

Проблема в том, что у меня несколько публикаций на странице и при клике на ссылку идёт обращение сразу ко всем блокам с классом togg, а надо чтоб обращение шло к своему конкретному. Мож массивом или как-то через this. Я вывод через вьюзу сделал и все эти классы в неё загнал поэтому в публикации чистый текст, Когда создавешь новую публикацию надо чтоб весь этот механизм сам подключался без дописания скриптов и классов.
Заранее спасибо

Комментарии

Аватар пользователя Znaem.net Znaem.net 14 октября 2011 в 0:29

Попробуй завернуть каждую из конструкций

<a href="#" class="togg-link">ПРИМЕР! Нажмите здесь и контент раскроется ниже</a>
<div class="togg" style="border: 1px solid green; padding: 5px; margin: 5px;">
Это контент. =)
Он раскрылся динамически
</div>

в отдельные дивы, каждую в свой.

Аватар пользователя goodchelovek goodchelovek 14 октября 2011 в 0:49

так она каждая у меня через темизацию вьюзы и заворачивается, я тут сделал через модуль ccfilter конечно дёшево и сердито, но хочется-то фильтипёртово

Аватар пользователя kyky kyky 14 октября 2011 в 5:58

"Znaem.net" wrote:

Твои советы убивают.
Спрашивают про Джаву -- советуешь jQuery установить.
Сейчас предлагаешь добавить лишнюю обертку. Что она даст?

"goodchelovek" wrote:
Проблема в том, что у меня несколько публикаций на странице и при клике на ссылку идёт обращение сразу ко всем блокам с классом togg, а надо чтоб обращение шло к своему конкретному.

Это очевидно, потому что событие у вас повешено на селектор по классу.
Нужно сопоставить каждую ссылку и див, например, по id, уникальному классу или просто взяв следующий после ссылки элемент.

Аватар пользователя Cyber Cyber 14 октября 2011 в 6:16

"goodchelovek" wrote:
$("div.togg").toggle(0);

зафига нуль? просто toggle()

"goodchelovek" wrote:
Drupal.behaviors.togg

прекратите срать в бехавиорс, чё там медом намазано из-за каждого высера?

---

можно заюзать друпальный collapse, но там говноразметка с беспонтовыми филдсетами.
можно попробовать просто show() hide(), можно сделать анимэйт

Аватар пользователя Cyber Cyber 14 октября 2011 в 8:02

"ХулиGUN" wrote:
нет, просто код тупо скопипижжен вот и всё)))

самое ржачное, что большинство этого кода морально устарело. в некоторых модулях такой ахтунг(да и в ядре местами), что его брать стыдно

Аватар пользователя goodchelovek goodchelovek 14 октября 2011 в 16:36

да там если даже ноль убрать не поможет, код новый старый, это не имеет значения. Мож как то циклом завострячить.

Аватар пользователя Cyber Cyber 14 октября 2011 в 22:02

"goodchelovek" wrote:
да там если даже ноль убрать не поможет, код новый старый, это не имеет значения. Мож как то циклом завострячить.

от того то пол семёрки с нативного js и переписали на замыкания и jquery-like...