javascript - Accordion 扩展后获得新高度

标签 javascript jquery

JQuery Accordion

(function(jQuery){
     jQuery.fn.extend({  
         accordion: function() {
            return this.each(function() {

                var $ul = $(this);

                if($ul.data('accordiated'))
                    return false;

                $.each($ul.find('ul'), function(){
                    $(this).data('accordiated', true);
                    $(this).hide();
                });

                $.each($ul.find('a'), function(){
                    $(this).click(function(e){
                        //if(!$(this).hasClass('Active')) {
                            activate(this);
                            return void(0);
                        //}
                    });
                });

                var active = $('.Active');

                if(active){
                    activate(active, 'toggle');
                    $(active).parents().show();
                }

                function activate(el,effect){
                    if (!effect) {
                      $(el)
                       .toggleClass('Active')
                       .parent('li')
                       .siblings()
                       .find('a')
                       .removeClass('Active')
                       .parent('li')
                       .children('ul')
                       .slideUp('fast');
                    }
                  $(el)
                  .siblings('ul')[(effect || 'slideToggle')]((!effect)?'fast':null);
                }

            });
        } 
    }); 
})(jQuery);

调用 Accordion

$('.Menu.Open').accordion();

问题

.Menu.Open 位于 .SideNav 内部,我想在 Accordion 折叠/展开内容后获取新高度以设置 .Main 的高度

我一直在研究计时器和定时事件,但是在我的 Accordion 展开后我无法让它工作,并且感觉我的尝试完全错误,我不想用它们全部淹没这个页面!

最佳答案

查看您的代码,您依靠 Jquery.slideUp/slideDown 来展开/折叠您的 Accordion 。如果我理解正确的话,你正在尝试在动画完成后测量高度。我相信这就是您正在寻找的

$('element').slideUp('fast', function(){ perform_measurement_here();});

另外,供大家引用

http://api.jquery.com/slideup/

关于javascript - Accordion 扩展后获得新高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28102628/

相关文章:

javascript - 无法使用自定义属性更改 Select2 下拉菜单的字体颜色

javascript - 如何从 html 字符串中删除所有 javascript(使用 javascript 或 jquery)?

jquery - 如何使用不同的选择器进行 .off() 和 .on() 操作

java - CSS 或 JS 方式设置绝对 div 高度 100%

javascript - 如何使用 javascript 对输入元素进行排名

我的 WordPress 页面中的 JavaScript

jquery - 如何删除溢出 :hidden on specific object

javascript - 输入元素内的动态数字操作,增量添加

javascript - ExtJS 6 - 输入类型为 'password' 的文本字段在 Chrome 开发工具中生成警告

javascript - 使用 lodash 在 reducer 中进行条件连接