如何正确隐藏选定的下拉菜单
How to properly hide selected dropdown?
我试图实现类似于引导按钮下拉(http://twitter.github.io/bootstrap/components.html#buttonDropdowns),但需要一些轻量级的东西。基本功能大致如下:
- 点击链接,相应的下拉div打开(works)
- 点击另一个链接时,前面的下拉菜单关闭,css类被删除(工作)
- 点击打开的下拉菜单的链接,关闭下拉菜单(不工作(关闭并重新打开))
- 点击正文的任何地方(所以在链接和下拉菜单之外),关闭下拉菜单(不起作用)
这背后的逻辑应该是什么?
演示:http://jsfiddle.net/fU2BZ/
下面的代码有意义吗?
$(document).click( function(){
$('.dropdownbox').hide(0);
$('.dropdown').removeClass('active');
});
$('.dropdown').click( function(event){
event.stopPropagation();
$('.dropdown').removeClass('active');
$('.dropdownbox').hide();
$(this).addClass('active').find('.dropdownbox').slideToggle(200);
});
对你的代码做了一些改变,添加了一些if else逻辑,似乎可以工作
小提琴:http://jsfiddle.net/fU2BZ/1/
代码:$('.dropdown').click( function(event){
event.stopPropagation();
if ($(this).hasClass("active")) {
$('.dropdown').removeClass('active');
$('.dropdownbox').hide();
} else {
$('.dropdownbox').hide();
$(this).addClass('active').find('.dropdownbox').slideToggle(200);
}
});
你很接近了。如果标志是可见的,我会存储它(这样你就不会重复使用相同的代码)
$('.dropdown').click( function(event){
event.stopPropagation();
var active = false;
if ( $(this).hasClass('active') )
active = true;
$('.dropdown').removeClass('active');
$('.dropdownbox').hide();
if ( ! active )
$(this).addClass('active').find('.dropdownbox').slideToggle(200);
});
jsFiddle: http://jsfiddle.net/fU2BZ/4/
解决第三个问题的简单代码:
$('.dropdown').click(function (event) {
event.stopPropagation();
$('.dropdown').removeClass('active').not(this).find('.dropdownbox').hide();
$(this).toggleClass('active').find('.dropdownbox').slideToggle(200);
});
要解决最后一个问题,请这样做:
$('.dropdownbox').click(function (event) {
event.stopPropagation();
});
相关文章:
- JavaScript下拉菜单-点击按钮并根据所选值重定向到url
- angular的下拉菜单
- 创建带有和不带有JavaScript的Bootstrap下拉菜单
- 创建下拉菜单
- 下拉菜单在菜单按钮的边缘闪闪发光
- I'我设计了一个下拉菜单,onclick会出现,而on blur会消失
- 硒IDE下拉菜单
- 检测引导下拉菜单选择的正确方法是什么
- j查询下拉菜单显示不正确
- 哪个元素会影响我的jquery下拉菜单的位置-->使其正确运行
- jQuery不能从JavaScript对象中获得正确的下拉菜单值
- 如何正确隐藏选定的下拉菜单
- 用小数正确排序HTML下拉菜单
- jQuery,CSS下拉菜单不堆叠&正确定位
- 为什么我的AJAX请求不能从下拉菜单中获得正确的值?
- 用于下拉菜单的正确焦点和焦点输出javascript函数是什么
- 如何获得“;下拉菜单”;导航栏中的菜单下拉到正确的位置
- 下拉菜单 - Javascript val() 用于选择框未正确链接
- 如何使我的下拉菜单与我的元素正确对齐
- 下拉菜单中选择的值设置不正确