javascript - 下拉菜单不断上下移动

标签 javascript jquery

这是我的功能:

function dropmenu() {
    $(".dropdownitem").show('slow');
}
function hidemenu() {
    $(".dropdownitem").hide('slow');
}

这是我的下拉菜单:

<div id="dropdown" class="ns" onmouseover="dropmenu()" onmouseout="hidemenu()">
    <p id="dropper">Shortcut Menu</p>
    <p class="dropdownitem">Shortcut menu item</p>
    <p class="dropdownitem">Something</p>
    <p class="dropdownitem">Seomthing else</p>
    <p class="dropdownitem">Test menu item</p>
    <p class="dropdownitem">More testing</p>
    <p class="dropdownitem">Stuff</p>
    <p class="dropdownitem">More stuff</p>
</div>

问题是,当我将鼠标悬停在快捷菜单上并移出时,它会不断上下、上下、上下、......

问题是什么?

最佳答案

elclanrs 的答案将解决弹跳问题,另一个解决方案是将所有内容放在应该下拉的 div 中

<div id="dropdown" class="ns" onmouseover="dropmenu()" onmouseout="hidemenu()">
<div class="dropdownshow">
  <p id="dropper">Shortcut Menu</p>
  <p class="dropdownitem">Shortcut menu item</p>
  <p class="dropdownitem">Something</p>
  <p class="dropdownitem">Seomthing else</p>
  <p class="dropdownitem">Test menu item</p>
  <p class="dropdownitem">More testing</p>
  <p class="dropdownitem">Stuff</p>
  <p class="dropdownitem">More stuff</p>
</div>
</div>

然后显示整个下拉 div

function dropmenu() {
$(".dropdownshow").show('slow');
 }

   $(document).on("mouseover", "div.overout" , function() {
   $(".dropdownshow").show('slow');    
     }).mouseout(function(){
        $(".dropdownshow").hide('slow');
     });

在您同时将动画应用于 7 个单独的元素并导致弹跳之前,这只适用于 1

关于javascript - 下拉菜单不断上下移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12869561/

相关文章:

javascript - 我怎么知道我的类(class)是否有属性(property)

javascript - 监听指定时间段内的多个事件

javascript - 如何在 JavaScript 中展平 touchmove 监听器?

javascript - 如何使用 CSS3 过渡让元素滑入?

jquery - 将 li 元素移出父 ul 并保留位置

javascript - jQuery 单击不是在 SVG <g> 上触发,而是在子元素上触发

javascript - 我可以防止意外覆盖 TypeScript/JavaScript 中的局部变量吗?

javascript - 如何将 $state 变量传递给其他 2 个同级 $states?

jQuery ajax POST json

jQuery - 无法删除类