Имею скрипт, подключенный в .info файл.
Пункты меню с атрибутом nolink.
Пытаюсь добиться что-бы по клику на пункт меню 1 вью блок менялся на другой и обратно.
Скрипт:
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ой остается на странице.
Может стоит сделать отдельный модуль? Так-как код будет длинный...
Подскажите что не так.
Комментарии
/del
я не гуру js но мне кажется вы объявляете Drupal.behaviors.dynamic_products дважды тем самым затирая его значение
вот так работает:
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);
Хм. Спасибо.
И так-как у меня все блоки выводятся в один регион, как сделать что-бы при загрузке страницы все кроме дефолтного блока прятались.
Или есть какая-нибудь возможность выводить с помощью jquery сразу регионы? Тоесть создать каждому блоку по региону и вызывать появления не блока, а сразу региона.
Ап
Ах да, дисплей нон