【问题标题】:toggle dropdown: define starting position切换下拉菜单:定义起始位置
【发布时间】:2014-04-04 12:51:12
【问题描述】:
您好,我有一个 jquery 下拉菜单:
$('div a').hover(function() {
$('.submenu').not(this).children('li').slideUp("slow");
$(this).children('li').slideToggle("slow");
});
现在它已折叠,当我将鼠标悬停在菜单项上时,它会向上滑动。
我怎样才能使陈述位置向上,当我悬停时向下滑动。
另外,只有悬停的菜单项下方的子菜单才能折叠。现在,当我将鼠标悬停在一个上时,所有子菜单都会崩溃。我知道为此使用“div a”可能不是很聪明,但我真的不能给每个切换菜单项一个不同的 id。那么有没有办法告诉jquery只折叠悬停的“div a”的孩子???
我是个菜鸟!
http://jsfiddle.net/CBKZK/
【问题讨论】:
标签:
jquery
css
menu
toggle
【解决方案1】:
这样使用
$('.dropdown-menu').click(function() {
$('.dropdown-menu').not(this).children('ul').slideUp("slow");
$(this).children('ul').slideToggle("slow");
$(".thisismobile").find("a").next().show();
});
$(".thisismobile").find("a").hover(
function() {
$( this ).next().slideDown();
}, function() {
$( this ).next().slideUp(); }
);
Demo
编辑
$('.dropdown-menu').click(function() {
$('.dropdown-menu').not(this).children('ul').slideUp("slow");
$(this).children('ul').slideToggle("slow");
$(".thisismobile").find("a").next().show();
});
$(".thisismobile").find("a").hover(function(){
$( this ).next().slideDown();
});
$(".submenu").mouseleave(function(){
$( this ).slideUp();
});
Updated Fiddle
【解决方案2】:
第一:
$(document).ready(function(){
$(this).children('li').slideToggle("slow"); // seting initial state
$('div a').hover(function() {
$('.submenu').not(this).children('li').slideUp("slow");
$(this).children('li').slideToggle("slow");
});
});
我不太清楚你的第二点也许你可以提供一些html。