[need help] jQuery блоки

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

Аватар пользователя jontsk jontsk 16 октября 2013 в 18:30

Имею скрипт, подключенный в .info файл.
Пункты меню с атрибутом nolink.
Пытаюсь добиться что-бы по клику на пункт меню 1 вью блок менялся на другой и обратно.

Скрипт:

(function($){
   Drupal.behaviors.dynamic_products =  {
      attach: function (context, settings) {
        $('.menu-mlid-504').click(function(){
                $('.view-id-left_block_updates').fadeIn(100);
                $('.view-id-left_block_guild_news').fadeOut(0);
        });
      }
   }
})(jQuery);

(function($){
   Drupal.behaviors.dynamic_products =  {
      attach: function (context, settings) {
        $('.menu-mlid-505').click(function(){
                $('.view-id-left_block_guild_news').fadeIn(100);
                $('.view-id-left_block_updates').fadeOut(0);
        });
      }
   }
})(jQuery);

При клике по пункту стартовый блок исчезает, а новый не появляется. При обратном действии из 2ой позиции, стартовый блок не появляется.
В регион изначально выведен только стартовый блок. Если в регион изначально добавить 2 материала, то при клике по 2 пункту меню стартовый блок исчезает, но обратное действие не показывает стартовый блок и 2ой остается на странице.
Может стоит сделать отдельный модуль? Так-как код будет длинный...
Подскажите что не так.

Комментарии

Аватар пользователя webpavilion webpavilion 16 октября 2013 в 20:16

я не гуру js но мне кажется вы объявляете Drupal.behaviors.dynamic_products дважды тем самым затирая его значение

вот так работает:

(function($){
   Drupal.behaviors.dynamic_products =  {
      attach: function (context, settings) {
        $('.menu-mlid-504').click(function(){
                $('.view-id-left_block_updates').fadeIn(100);
                $('.view-id-left_block_guild_news').fadeOut(0);
        });

        $('.menu-mlid-505').click(function(){
                $('.view-id-left_block_guild_news').fadeIn(100);
                $('.view-id-left_block_updates').fadeOut(0);
        });
      }
   }
})(jQuery);

Аватар пользователя jontsk jontsk 16 октября 2013 в 21:23

Хм. Спасибо.

И так-как у меня все блоки выводятся в один регион, как сделать что-бы при загрузке страницы все кроме дефолтного блока прятались.

Или есть какая-нибудь возможность выводить с помощью jquery сразу регионы? Тоесть создать каждому блоку по региону и вызывать появления не блока, а сразу региона.