1

見つかったjquery ui.Iに基づいてシンプルなアコーディオンメニューを作成しました。要素のアニメーション化に問題があります。クリックすると、スライドアップまたはスライドダウンアニメーションを適切に使用できず、使用すると他の多くの問題が発生します。したがって、アニメーションを取得するのに役立つものは何でもあります。

JS フィドル: http://jsfiddle.net/cZbr6/

脚本

            $(document).ready(function() {

                var notfContainer = $('#notifications');

                notfContainer.find("a").each(function() {
                    var e = $(this);
                    if(!e.hasClass('active')) {         
                                e.next().css({
                                    'display':'none'
                                });     //hide all other div's and set height as 0px

                    }       
                });



                notfContainer.on('click' , function(event) {
                    var target = $(event.target);       //Used to find the element on which the click event has happened.

                    if(target.is("a")) {                //If the click event occurred on <a>
                        var self = $(target);           //Select the element
                        if(self.hasClass('active')) {   //If is is already expanded .. has active class
                            return;                     //just .. return 
                        }else {

                        notfContainer.find("a").each(function() {
                            var e = $(this);
                            if(e.hasClass('active')) {  
                                        e.removeClass('active');
                                        e.next().css('display','none');     //hide all other div's
                                        return false;   //break the loop    
                            }   


                        });
                            self.addClass('active');    
                            self.next().css({
                                'display':'block',
                                'height':'160px'
                            });


                        }


                    }
                });

            });
4

1 に答える 1

2

jsBinデモ

jQuery:

$(document).ready(function() {

    $('#notifications a.active').next('div').siblings('div').hide();
  
    $('#notifications a').click(function() {
        $(this).addClass('active').siblings('a').removeClass('active');
        var el = $(this).next('div');
        check = (el.is(':visible')) ? el.slideUp() : function(){ $('#notifications div').slideUp(); el.slideDown(); }();
    });
    
});
于 2012-05-13T20:04:06.347 に答える