2011-11-29 27 views
0

我正在寻找jQuery的下拉插件,因为我的应用程序有多个下拉菜单。所需功能与StackOverflow配置文件插入符号非常相似。jQuery下拉插件 - 任何支持插件吗?

我发现这一点:http://davidwalsh.name/twitter-dropdown-jquery

但考虑到不是感觉很凌乱的插件。任何人都知道一个插件,可以让我在我的网站上干下拉?

感谢

+1

你可以使它成为像3行代码一样的插件。 – Blender

+0

搅拌机?为jsfiddle? – AnApprentice

+0

当然。这是在我的答案。 – Blender

回答

1

我清理了一下代码,并使其插件十岁上下。不是很优雅(代码不漂亮有开始),但它应该工作:

jQuery.fn.twitterMenu = function() { 
    return this.each(function() { 
     var dropdown = $(this); 
     var menu = dropdown.next('div.dropdown-menu'); 
     var parent = dropdown.parent(); 

     var activeClass = 'dropdown-active'; 
     var showingDropdown = false; 
     var showingDropdown, showingMenu, showingParent; 

     dropdown.click(function(e) { 
      e.stopPropagation(); 
      e.preventDefault(); 

      if (showingDropdown) { 
       dropdown.removeClass(activeClass); 
       showingMenu.hide(); 

       showingDropdown = false; 
      } else { 
       showingDropdown = true; 
       showingMenu = menu; 
       showingParent = parent; 

       menu.show(); 
       dropdown.addClass(activeClass); 
      } 
     }); 

     $('body').click(function(e) { 
      if (showingParent) { 
       var parentElement = showingParent[0]; 

       if (!$.contains(parentElement, e.target) || !parentElement == e.target) { 
        hideMenu(); 
       } 
      } 
     }); 
    }); 
}; 

你使用这样的:

$(document).ready(function() { 
    $('.dropdown').twitterMenu(); 
}); 

演示:http://jsfiddle.net/DraY4/9/