Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > Не подключается функция из jQuery


Автор: Squidward 30.9.2011, 15:51
Имеем:
 <ul class="menu">
 <li><a href="#">О предприятии</a>
 <ul>
 <li><a href="#">Наша история</a></li>
 <li><a href="#">Награды</a></li>
 <li><a href="#">Совет директоров</a></li>
 </ul>
 </li>
 </ul>
 Чтобы меню второго уровня плавно разворачивалось при наведении, прицеплен jquery.js и в нем для .menu должна работать нижеследующая функция (или как это назвать, не знаю), но она не работает (нужный кусок кода начинается с комментария //smooth drop downs):
Код

function k_menu()
{
        // k_menu controlls the dropdown menus and improves them with javascript
        
        jQuery(".menu a, .catnav a").removeAttr('title');
        jQuery(" .menu ul, .catnav ul ").css({display: "none"}); // Opera Fix
        
        
        // remove the last border from category menu item if there are 7 items, that border is not needed
        if(jQuery(".catnav>li").length >= 7)
        {
                jQuery(".catnav>li:last").addClass('noborder');
        }
        
        
        //set equal height for all category main items, in case a description is too long
        var mainitem = jQuery(".catnav>li>a");
        mainitem.each(function()
        {
                if(jQuery(this).height() < 34)
                {
                        jQuery(this).css({height:"34px"});
                }
        });
        mainitem.equalHeights();
        
        
        
        //smooth drop downs
        jQuery(".menu li, .catnav li").each(function()
        {       
                
                var $sublist = jQuery(this).find('ul:first');
                
                jQuery(this).hover(function()
                {       
                        $sublist.stop().css({overflow:"hidden", height:"auto", display:"none"}).slideDown(400, function()
                        {
                                jQuery(this).css({overflow:"visible", height:"auto"});
                        });     
                },
                function()
                {       
                        $sublist.stop().slideUp(400, function()
                        {       
                                jQuery(this).css({overflow:"hidden", display:"none"});
                        });
                });     
        });
}

Почему-то не работает этот кусок, хотя часть кода выше, вот эта, работает:
Код

jQuery(" .menu ul, .catnav ul ").css({display: "none"}); // Opera Fix

И ul приобретает display: "none".
В чем проблема?

Автор: Squidward 30.9.2011, 19:59
Копировал эту штуку со статичного html-макета на движок. Вроде и стили все скопировал, и яваскрипты прицепил, и все равно в макете работает, а в моем шаблоне нет. То есть оказалось работать выплывающее меню и слайдер картинок. Элементы, которые должны "выезжать", в моем шаблоне упрямо отображаются как display:none, а динамика для них не включается, хотя в html-макете display:none тоже прописано для них в css, однако яваскрипты для них работают.


Автор: нуп 1.10.2011, 11:38
Ставим дебагер. Для ff это firebug  и смотрим что за ошибки пишет

Автор: Gold Dragon 3.10.2011, 07:06
этот класс от куда .catnav?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)