我有以下代码:
$(".nav_button").hover(function(){
m = $(this).children("ul").css("display");
if (m == "none"){
$(this).children("ul").slideDown(300);
}
else{
$(this).children("ul").slideUp(300);
}
});
很多时候它会被窃听,有时它会滑动,停留等等。 知道为什么会这样以及如何纠正它?
答案 0 :(得分:1)
使用此代码来取消支票和其他不相关的代码
$(".nav_button").hover(function(){
$(this).children("ul").slideToggle(300);
});
这将根据当前状态自动滑动或滑动您的UL。
这是来自官方jQuery文档:
的slideToggle();显示或隐藏 匹配元素与滑动 运动。
答案 1 :(得分:0)
我在代码中看不到任何错误,也许可以像这样重写。
$(".nav_button").hover(function(){
m = $(this).children("ul");
if (m.css("display") == "none"){
m.slideDown(300);
}
else{
m.slideUp(300);
}
});
通过这种方式,您只在DOM中查看元素
答案 2 :(得分:0)
除非只有一个子'ul',m = $(this).children("ul").css("display")
将返回一个数组,因此在下一个语句if (m == 'none')
中它可能会中断。
你可能想要一个.each来处理每个ul
答案 3 :(得分:0)
像这样使用:
$(".nav_button").hover(function(){
m = $("ul").css("display");
alert(m);
if (m == "none") {
$("ul").slideToggle(300);
}
else {
$("ul").slideToggle(300);
}
});
参见演示:http://jsfiddle.net/rathoreahsan/JAA9q/4/
或者您可以这样使用:
$(".nav_button").hover(function(){
m = $("#toggleUL").css("display");
alert(m);
if (m == "none") {
$("#toggleUL").slideToggle(300);
}
else{
$("#toggleUL").slideToggle(300);
}
});