выпадающее меню JQuery - PullRequest
       10

выпадающее меню JQuery

0 голосов
/ 13 ноября 2011

Я пытался сделать подобное выпадающее меню, как aoro dot ro.В chrome, safari, ie6, кажется, работает так, как мне кажется, но в Mozila Firefox 3.6 у меня есть некоторые проблемы.Если я переместлю курсор быстро, мой выпадающий список исчезнет.Я думаю, что эта проблема из первых элементов детских.В данный момент я не делаю неправильно.Благодарю.

Код выглядит так:

    <div class="navigator">
    <ul>
    <li id="for_her"><a href="#" title="I`Parfumuri.ro | Parfumuri pentru EA"><span class="fpi"></span> Parfumuri pentru ea</a></li>

     <li id="for_him"><a href="#" title="I`Parfumuri.ro | Parfumuri pentru EL"><span class="mpi"></span> Parfumuri pentru el</a></li>

     <li id="gifts"><a href="#" title="I`Parfumuri.ro | Seturi cadou"><span class="sci"></span> Seturi Cadou</a>
    <div class="under_menu" style="display:none;">
      <div class="vertical_r">
      <h5>Cadouri pentru ea</h5>
      <ul>
      <li><a href="#">Produs 1</a></li><li><a href="#">Produs 2</a></li></ul></div>
      <div class="vertical_r">
      <h5>Cadouri pentru el</h5>
      <ul>
      <li><a href="#">Produs 1</a></li><li><a href="#">Produs 2</a></li></ul></div>
      </div>

</li>
</ul>
</div>



        $("#gifts").mouseover(function(){                        
                      $(this).children().show();                                             
        });
        $("#gifts > .under_menu").children().mouseover(function(){  

                    $("#gifts > .under_menu").show();
        });

        $(document).bind('mouseout',function(e){
                var click1 = $(e.target).attr('id');
                var click2 = $(e.target).attr('class');
                if(click1 != "gifts" || click2 != "under_menu"){
                            $(".under_menu").hide();
                    }
        });

1 Ответ

0 голосов
/ 13 ноября 2011

Я думаю, что проблема в том, что у вас здесь происходит некоторое состояние гонки.

если вы переходите от одного ребенка к другому (из #gifts), тогда у вас есть mouseout и mouseover, которые получаютсрабатывает.если указатель мыши срабатывает последним, то все меню скрывается.

то, что вам, вероятно, следует сделать, это реализовать время ожидания, например, 200 мс) для указателя мыши, и очистить его, если оно существует при вызове указателя.

таким образом, при срабатывании указателя мыши потребуется 0,2 секунды - достаточно времени для запуска следующего события при наведении курсора.

...