在Toggle事件中获取折叠div的ID

时间:2012-07-11 07:54:29

标签: jquery

我有多个div设置,包含标题和内容。 单击标题时,它会展开选定div上的内容,并隐藏所有其他内容。 这工作正常,但我需要获取已隐藏或显示的所有内容div的ID。

这是我对hide / show的jquery:

$(".CollapsableHeader").next(".CollapsableDiv").hide();
            $(".CollapsableHeader").click(function () {
                $('.active').not(this).toggleClass('active').next('.CollapsableDiv').slideToggle(300, function () {
                    alert($(this).next('.CollapsableDiv').attr('id'));
                });
                $(this).toggleClass('active').next().slideToggle("fast");

            });

因此,在此示例中,我的警报始终显示为undefined。 我尝试的所有内容都以undefined的形式出现。 知道如何获得.CollapsableDiv的ID吗?

1 个答案:

答案 0 :(得分:0)

如果您在点击id后查找“下一个”.CollapsableDiv的{​​{1}},请在点击处理程序而不是.CollapsableHeader中抓取它回调:

slideToggle

原因是$(".CollapsableHeader").next(".CollapsableDiv").hide(); $(".CollapsableHeader").click(function () { // Grab it here var id = $(this).next('.CollapsableDiv').attr('id'); $('.active').not(this).toggleClass('active').next('.CollapsableDiv').slideToggle(300, function () { // Then use it here alert(id); }); $(this).toggleClass('active').next().slideToggle("fast"); }); 回调中的this是一个不同的元素(具体而言,它是slideToggle最终的结果。)