Drupal 7 + jQuery toggle

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

Аватар пользователя MaximumofmaX MaximumofmaX 26 мая 2012 в 16:58

Пытаюсь в Drupal 7 сделать выдвигающийся div на jQuery. не запускается чтото

Скрипт отдельным файлом подключен через .info файл темы, подгружается всё нормально.

(function ($) {
   $('#slide a').click(function(){
     $('#toggler').toggle();
   });
})(jQuery);

ксс
#toggler { display: none; }

хтмл ссылки по которой происходит действие
<a id="slide" href="#">some name</a>

хтмл непосредственно выдвигающегося дива
<div id="toggler">some text</div>

не работает что-то. в чём может быть проблема?

Комментарии

Аватар пользователя emzzy emzzy 26 мая 2012 в 17:43
(function ($) {
   $('#slide a').click(function(e){
e.preventDefault();
     $('#toggler').toggle();
   });
})(jQuery);

Так попробуйте. Если не получиться, уточните, что именно не получается - по ссылке переходит, не разворачивается $('#toggler')?

Аватар пользователя MaximumofmaX MaximumofmaX 26 мая 2012 в 18:42

не помогло. не разворачивается $('#toggler')
по ссылке он и не должен переходить по идее.
библиотека jQuery как я понимаю идёт вместе с друпалом 7. её подключать не надо?

Аватар пользователя emzzy emzzy 26 мая 2012 в 18:46

"MaximumofmaX" wrote:
библиотека jQuery как я понимаю идёт вместе с друпалом 7. её подключать не надо?

Не надо.

Ошибки в консоли есть?

Попробуйте вывести console.log('debug'); после $('#slide a').click(function(e){ - в консоли 'debug' появиться?

Аватар пользователя zabej zabej 26 мая 2012 в 19:04

Такая же проблема. Не туглит

У вас получилось решить?

Консоль не выдаёт никаких ошибок

После пробую добиться хотябы какой-то реакции.
Скопировал код со страницы:
https://drupal.org/node/287259

if (Drupal.jsEnabled) {
  $(document).ready(function () {
   
     alert('test message');
 
  });
}

подключил через инфо файл. подхватывается скрипт
но никакой реакции

Аватар пользователя zabej zabej 26 мая 2012 в 19:45

Решение которое подошло мне... Drupal 7.14

1. Подключаю скрипт через .info файл

scripts[] = js/theme_engine.js (сам скрипт лежит в подпапке темы)

2. Добавляю в шаблон (например, page.tpl.php) следующий html-код:

<a id="admin_view" class="toggle_link" href="#">Открывачка =)</a>
<div class="vid-select">
some information
</div>

3. Добавляю в файл theme_engine.js этот код:

jQuery(document).ready(function () {
  jQuery("#admin_view").click(function () {    
    jQuery(".vid-select").slideToggle("slow");
  });
});

Из-за отсутствия явного объявления функций jQuery была ошибка.
Надеюсь вам поможет

Особенно помогли эти ссылки:
http://api.drupal.org/api/drupal/includes!common.inc/function/drupal_add...
https://drupal.org/node/756722
http://api.jquery.com/slideToggle/

Аватар пользователя emzzy emzzy 27 мая 2012 в 0:36

"Shok211" wrote:
(function ($) {
 
Drupal.behaviors.exampleModule = {
attach: function (context, settings) {
// Ваш код
}
};
 
})(jQuery);

Поверьте, от того, что вы подключили behaviors код более рабочим у ТС не станет Smile

Аватар пользователя MaximumofmaX MaximumofmaX 24 июня 2012 в 21:00

комрады, спасайте советом.

в тугл диве лежит форма обратной связи и при сабмите страница обновляется и тугл закрывается. есть какиенибудь способы запоминать положение?