jQuery Dropdown Plugin - Есть ли какие-нибудь поддерживаемые плагины? - PullRequest
0 голосов
/ 29 ноября 2011

Я ищу выпадающий плагин для jQuery, так как в моем приложении несколько раскрывающихся списков.Требуемая функциональность очень похожа на каретку профиля StackOverflow.

Я нашел это: http://davidwalsh.name/twitter-dropdown-jquery

Но, учитывая, что это не плагин, он выглядит очень грязно.Кто-нибудь знает плагин, который позволил бы мне СУХОЙ выпадающий на моем сайте?

Спасибо

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Я немного очистил код и сделал его подключаемым.Не очень элегантно (код не был хорош для начала), но оно должно работать:

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/

0 голосов
/ 29 ноября 2011

Это полезно: http://aext.net/2009/08/perfect-sign-in-dropdown-box-likes-twitter-with-jquery/

Надеюсь, это поможет

...