высота для абсолютной позиции не работает и мешает работе jquery (пример) - PullRequest
0 голосов
/ 23 февраля 2012

посмотрите на это, пожалуйста http://jsfiddle.net/xhpqa/4/ элемент sub_menu продолжает скрываться, если указатель мыши находится над ним, потому что у него нет высоты (чтобы развернуть содержимое, если я указываю высоту или минимальную высоту и максимальную высоту, которую он не расширяет)

1 Ответ

1 голос
/ 23 февраля 2012

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

EDIT:

   $(document).ready(function() {
// getting links from db and show sub_menu div //
    $(".menu_item").mouseover(function(){
        $(this).children().slideDown(100,function(){});
        $(this).children(".sub_menu").css({'display':'block'});
    });

// hiding sub_menu div //
    $(".menu_item").mouseout(function(){
        $(this).children(".sub_menu").slideUp(100);
        $(this).children(".sub_menu").css({'height':'auto', 'display':'none' });
    });

// keeping sub_menu div visible on mouse over //
    $(".sub_menu").mouseover(function() {
        $(this).stop();
        $(this).css({'display':'block'});
    });

        $(".sub_menu").mouseout(function() {
        $(this).parent().css("background-image","url(images/menu_bg.gif)");
        $(this).slideUp(10);
            $(this).css({'height':'auto', 'display':'none'});

    });

// document ready end
});

, поскольку вы используете функции slideUp и slideDown в jQuery.

при быстром наведении курсора мыши на высоту неправильно устанавливается значение div вашего подменю.

slideUp происходит, когда ваш элемент display:block (т.е. видимый), и его высота начинается с фактической высоты, пока не станет нулевой (0).

slideDown происходит, когда высота элемента начинает увеличиваться с нуля (0) до его фактической высоты, и она display:none (т.е. скрыта).

...