@Pallada99
Новичок

Почему не срабатывает код меню аккордеон javascript на jquery-3.3.1.min.js?

Здравствуйте! помогите разобраться почему не срабатывает js дополнительного меню аккордеон.
Решил перейти на версию библиотеки jquery-3.3.1.min.js ранее была подключена query-1.12.4.min.js
Но после подключения библиотеки доп. меню ранее работавшее перестало работать, в чем дело не могу понять.
код скрипта который должен подключаться:
(function($){
    $.fn.extend({
 
    //pass the options variable to the function
    accordion: function(options) {
        
        var defaults = {
            accordion: 'true',
            speed: 300,
            closedSign: '[+]',
            openedSign: '[-]'
        };
 
        // Extend our default options with those provided.
        var opts = $.extend(defaults, options);
        //Assign current element to variable, in this case is UL element
        var $this = $(this);
        
        //add a mark [+] to a multilevel menu
        $this.find("li").each(function() {
            if($(this).find("ul").size() != 0){
                //add the multilevel sign next to the link
                $(this).find("a:first").append("<span>"+ opts.closedSign +"</span>");
                
                //avoid jumping to the top of the page when the href is an #
                if($(this).find("a:first").attr('href') == "#"){
                    $(this).find("a:first").click(function(){return false;});
                }
            }
        });
 
        //open active level
        $this.find("li.active").each(function() {
            $(this).parents("ul").slideDown(opts.speed);
            $(this).parents("ul").parent("li").find("span:first").html(opts.openedSign);
        });
 
        $this.find("li a").click(function() {
            if($(this).parent().find("ul").size() != 0){
                if(opts.accordion){
                    //Do nothing when the list is open
                    if(!$(this).parent().find("ul").is(':visible')){
                        parents = $(this).parent().parents("ul");
                        visible = $this.find("ul:visible");
                        visible.each(function(visibleIndex){
                            var close = true;
                            parents.each(function(parentIndex){
                                if(parents[parentIndex] == visible[visibleIndex]){
                                    close = false;
                                    return false;
                                }
                            });
                            if(close){
                                if($(this).parent().find("ul") != visible[visibleIndex]){
                                    $(visible[visibleIndex]).slideUp(opts.speed, function(){
                                        $(this).parent("li").find("span:first").html(opts.closedSign);
                                    });
                                    
                                }
                            }
                        });
                    }
                }
                if($(this).parent().find("ul:first").is(":visible")){
                    $(this).parent().find("ul:first").slideUp(opts.speed, function(){
                        $(this).parent("li").find("span:first").delay(opts.speed).html(opts.closedSign);
                    });
                    
                    
                }else{
                    $(this).parent().find("ul:first").slideDown(opts.speed, function(){
                        $(this).parent("li").find("span:first").delay(opts.speed).html(opts.openedSign);
                    });
                }
            }
        });
    }
});
})(jQuery);


Код который вызывает данный скрипт:
<script language="javascript">
$(document).ready(function() {
$(".topnav").accordion({
accordion:false,
speed: 400,
closedSign: '[+]',
openedSign: '[-]'
});
});
</script>


Код дополнительно меню (вызывается удаленным кодом)
<!-- <block2> -->
<?if($CATEGORIES$)?>
<div class="block">
<div class="block-title cat-block-title"><?if($MODULE_ID$='load')?>Каталог акций<?else?>Каталог<?endif?></div>
<div class="block-content">$CATEGORIES$</div>
<ul class="topnav">
<?ifnot($MODULE_ID$="load")|($MODULE_ID$="publ")?>
$RCODE_1$<?endif?>
</div>
<?endif?>
<!-- </block2> -->
  • Вопрос задан
  • 155 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы