遇到问题.click on jquery

时间:2011-11-11 15:53:17

标签: jquery javascript-events

我有以下代码:

$("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 个答案:

答案 0 :(得分:1)

使用toggle而不是点击

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

以下是一个简化示例:http://jsfiddle.net/s3ZQ6/

答案 1 :(得分:1)

我会尝试使用toggle函数:

$(this).find("div.th-overlay-dropdown").toggle();