Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery在悬停时被窃听-为什么?_Jquery_Slide - Fatal编程技术网

jQuery在悬停时被窃听-为什么?

jQuery在悬停时被窃听-为什么?,jquery,slide,Jquery,Slide,我有以下代码: $(".nav_button").hover(function(){ m = $(this).children("ul").css("display"); if (m == "none"){ $(this).children("ul").slideDown(300); } else{ $(this).children("ul").slideUp(300); } }); 很多时候它会被窃听,有时会滑动,停留,等等。 你知道这是为什么吗?如何更正吗?我看不出你的代码

我有以下代码:

$(".nav_button").hover(function(){
m = $(this).children("ul").css("display");
if (m == "none"){
    $(this).children("ul").slideDown(300);
}
else{
    $(this).children("ul").slideUp(300);
}
});
很多时候它会被窃听,有时会滑动,停留,等等。
你知道这是为什么吗?如何更正吗?

我看不出你的代码有任何错误,也许可以这样重新编写

$(".nav_button").hover(function(){
  m = $(this).children("ul");
  if (m.css("display") == "none"){
   m.slideDown(300);
  }
  else{
   m.slideUp(300);
  }
});

这样,您在DOM中只查看了元素一次,我看不到您的代码中有任何错误,也许可以这样重新编写

$(".nav_button").hover(function(){
  m = $(this).children("ul");
  if (m.css("display") == "none"){
   m.slideDown(300);
  }
  else{
   m.slideUp(300);
  }
});

通过这种方式,您在DOM中只查看了元素一次

使用此元素来摆脱检查和其他不相关的代码

$(".nav_button").hover(function(){
    $(this).children("ul").slideToggle(300);
});
这将根据当前状态自动滑出或滑下您的UL

这来自jQuery官方文档:

滑动切换();显示或隐藏 带滑动轴承的匹配元件 动议


改用这个来摆脱检查和其他不相关的代码

$(".nav_button").hover(function(){
    $(this).children("ul").slideToggle(300);
});
这将根据当前状态自动滑出或滑下您的UL

这来自jQuery官方文档:

滑动切换();显示或隐藏 带滑动轴承的匹配元件 动议


除非只有一个子'ul',否则
m=$(this).children(“ul”).css(“display”)
将返回一个数组,因此在下一个语句
if(m='none')
中,它可能会中断。
您可能需要一个.each there来处理每个ul

除非只有一个子'ul',否则
m=$(this).children(“ul”).css(“display”)
将返回一个数组,因此在下一个语句
中,如果(m='none')
它可能会中断。 您可能需要一个。每个人都要踩每个ul

如下使用:

$(".nav_button").hover(function(){
     m = $("ul").css("display");
     alert(m);
     if (m == "none") {
         $("ul").slideToggle(300);        
     }
     else {
         $("ul").slideToggle(300);
     }
});
请参见演示:

或者您可以这样使用:

$(".nav_button").hover(function(){
    m = $("#toggleUL").css("display");
    alert(m);
    if (m == "none") {
        $("#toggleUL").slideToggle(300);        
    }
    else{
        $("#toggleUL").slideToggle(300);
    }
});
请参见演示:

像这样使用:

$(".nav_button").hover(function(){
     m = $("ul").css("display");
     alert(m);
     if (m == "none") {
         $("ul").slideToggle(300);        
     }
     else {
         $("ul").slideToggle(300);
     }
});
请参见演示:

或者您可以这样使用:

$(".nav_button").hover(function(){
    m = $("#toggleUL").css("display");
    alert(m);
    if (m == "none") {
        $("#toggleUL").slideToggle(300);        
    }
    else{
        $("#toggleUL").slideToggle(300);
    }
});

请参阅演示:

这是完全有缺陷的mate,无法应用于现实生活。这是完全有缺陷的mate,无法应用于现实生活。