2013-08-11 2 views
0

Я довольно новый с jQuery.
Пытается написать простой сценарий, чтобы скользить и скользить вниз.Jquery script issue

<script type="text/javascript"> 
$(document).ready(function() { 
    if ($('header').is(':visible')) { 
     $('header').hide(function() { 
      $(".masterhead").mouseover(function() { 
       $("header").slideDown('slow'); 
      }); 
     }); 
    } else { 
     $('.masterhead').mouseout(function() { 
      $('header').slideUp('slow'); 
     }); 
    } 

}); 
</script> 

Проблема заключается в том, когда я пытаюсь посмотреть его в браузере, он продолжает скольжение вверх и вниз, не правильный beahvior я надеялся, я попытался с SlideToggle, но то же самое происходит. Я пробовал много решений с этого сайта, но то же самое.
Буду признателен за любую помощь в этом.

+0

Я думаю, вы должны использовать MouseEnter и MouseLeave вместо этого, иногда и наведении курсора мыши MouseOut выполняется при перемещении курсора мыши на элемент. – jcubic

+0

Что такое заголовок? является заголовком тега? вы уверены, что не хотите использовать #header или .header? –

ответ

0

проверить это, но убедитесь, что вы не хотите использовать $('#header') или $('.header') вместо $('header'):

$(document).ready(function() { 
     $('header').hide(); 
     $(".masterhead").hover(
     function() { 
      $("header").slideDown('slow'); 
     }, 
     function() { 
      $("header").slideUp('slow'); 
     }); 
    }); 
+0

благодарит много, он работает лучше, но иногда он продолжает делать то же самое вверх и вниз, но правильный, который я хочу, сползает вниз, если заголовок не отображается и останавливается и открывается, когда мышь выходила из div –

+0

. Я думаю, что его ok вы можете предоставить JSFIDDLE –

+0

, я могу сделать лучше, вы можете проверить это там [demo] (http://spotlight.comuv.com), это демонстрация –

0

Попробуйте это. Его разработка

$(document).ready(function() { 
     $('#header').hide(); 
      $(".masterhead").mouseover(function() { 
       $("#header").slideDown('slow'); 
      }); 

     $('.masterhead').mouseout(function() { 
      $('#header').slideUp('slow'); 
     }); 


}); 

и вот образец HTML

<div class="masterhead">hello </div> 
<div id="header">hi</div> 

Вот jsfiddle * Demo *

Надеется, что это помогает. Спасибо.

0

Обновление

Я исправлю это, я нашел решение здесь. Я не знаю, подходит ли практика, но, похоже, работает так, как я надеялся. Я добавляю .stop (true, true) перед вызовом функции slideDown или slideup.

Решение

<script type="text/javascript"> 

      $(document).ready(function() { 
       $('header').hide(); 
       $(".masterhead").hover(
       function() { 
        $("header").stop(true,true).slideDown('slow'); 
       }, 
       function() { 
        $("header").stop(true,true).slideUp('slow'); 
       }); 
      }); 

     </script> 
0

более easilly использованием slideToggle:

$(document).ready(function() { 
       $('header').hide(); 
       $('.masterhead').hover(function(){ 
         $('header').slideToggle('slow'); 
       }); 

});