Jquery 点击下拉菜单

标签 jquery

所以,我有一个简单的菜单:当您单击一个时显示一个项目,当您单击两个时显示两个项目。 “一”和“二”具有切换功能,因此它们在单击时会向下和向上滑动,但是当我在不关闭“一”的情况下切换“二”时,事情会变得困惑。

$(function() {

$('li.sub', '#navigation').each(function() {

var $li = $(this);
var $div = $('div.submenu', $li);
var top = $li.height();

$li.toggle(function() {

  $div.css('top', top).
  slideDown('slow');

},

function() {

  $div.
  slideUp('slow');

  });

 });

});

fiddle :http://jsfiddle.net/vGSWm/2/

最佳答案

你可以试试这个

$(function() {
    $('#navigation li.sub').click(function(e) {
        var el = $(this).find('.submenu');
        $('.submenu').not(el).slideUp(function(){
            el.slideToggle();
        });
    });
});

DEMO.

更新:

$(function() {
    $('#navigation li.sub').click(function(e) {
        var el = $(this).find('.submenu');
        if(el.hasClass('open'))
        {
            el.slideUp(function(){
                el.removeClass('open');
            });
        }
        else
        {
            var opened = $('.submenu.open');
            if(opened.length)
            {
                opened.slideUp(function(){
                    opened.removeClass('open');
                    el.slideToggle(function(){
                        el.addClass('open');
                    });
                })
            }
            else
            {
                el.slideToggle(function(){
                    el.addClass('open');
                });
            }
        }
    });
});

DEMO .

关于Jquery 点击下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15058159/

相关文章:

javascript - 如何采集单栏内容

javascript - 为什么表单淡入淡出功能不允许验证?

javascript - 如何迭代 `address_component` 以获得 `country` 或任何

javascript - 将 .each() 绑定(bind)到动态添加的元素

jquery - 使用许多 div 创建按钮时出现问题

javascript - Jquery BlockUI 插件 - 阻止输入字段

Javascript - 使函数为每个 div 返回唯一的结果

javascript - jquery position() 在 safari 和 chrome 中无法正常工作

javascript - 防止触摸时出现超链接并显示悬停状态

jquery - 使用 jquery 创建/渲染 html 表单