Возникли проблемы с .click на jquery - PullRequest
1 голос
/ 11 ноября 2011

У меня есть следующий код:

$("div.button").click(
        function(e){
            e.preventDefault();
            $(this).find("div.th-overlay-dropdown").show();
            var vals = new Object();
            var current = $(this);
            $(this).find("ul").append("<li><a href='#' class='dropdown-filter-link'>All</a></li>");
            $("table tbody td." + $(this).find("ul").attr("class") + ":visible").each(function(i){
                var t = trim($(this).text());
                if(t != 'All' && t != '') {
                    vals[t] = t;
                }
            });
            var sortedVals = new Array();
            for(var item in vals) {
                sortedVals.push(trim(item));
            }
            sortedVals = sortedVals.sort();
            for(var item in sortedVals) {
                var i = sortedVals[item];
                if(typeof(i) == 'string') {
                    $(current).find("ul").append("<li><a href='#' class='dropdown-filter-link'>" + sortedVals[item] + "</a></li>");
                }
            }
        },

        function (e) {
            e.preventDefault();
            $(this).find("div.th-overlay-dropdown").hide();
            $(this).find("ul").empty();
        }
    );

Когда я нажимаю на кнопку div.button, элемент показывает раскрывающийся список, но когда я нажимаю кнопку div.button во второй раз, я хочу, чтобы раскрывающийся список исчез - что яделать неправильно ??

Ответы [ 2 ]

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

Я бы попробовал вместо этого использовать функцию toggle:

$(this).find("div.th-overlay-dropdown").toggle();
1 голос
/ 11 ноября 2011

используйте для переключения вместо щелчка

$("div.button").toggle();

Вот упрощенный пример: http://jsfiddle.net/s3ZQ6/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...