jquery菜单脚本冲突

时间:2014-11-05 14:06:16

标签: jquery menu typo3 expand

请帮助谁。该网站适用于typo3。对于菜单,我使用脚本:Marco van Hylckama Vlieg的简单JQuery菜单,它可以正常工作:

jQuery.fn.initMenu = function() {  
    return this.each(function(){
        var theMenu = $(this).get(0);
        $('.acitem', this).hide();
        $('li.expand > .acitem', this).show();
        $('li.expand > .acitem', this).prev().addClass('active');
        $('li a', this).click(
            function(e) {
                e.stopImmediatePropagation();
                var theElement = $(this).next();
                var parent = this.parentNode.parentNode;
                if($(parent).hasClass('noaccordion')) {
                    if(theElement[0] === undefined) {
                        window.location.href = this.href;
                    }
                    $(theElement).slideToggle('normal', function() {
                        if ($(this).is(':visible')) {
                            $(this).prev().addClass('active');
                        }
                        else {
                            $(this).prev().removeClass('active');
                        }    
                    });
                    return false;
                }
                else {
                    if(theElement.hasClass('acitem') && theElement.is(':visible')) {
                        if($(parent).hasClass('collapsible')) {
                            $('.acitem:visible', parent).first().slideUp('normal', 
                            function() {
                                $(this).prev().removeClass('active');
                            }
                        );
                        return false;  
                    }
                    return false;
                }
                if(theElement.hasClass('acitem') && !theElement.is(':visible')) {         
                    $('.acitem:visible', parent).first().slideUp('normal', function() {
                        $(this).prev().removeClass('active');
                    });
                    theElement.slideDown('normal', function() {
                        $(this).prev().addClass('active');
                    });
                    return false;
                }
            }
        }
    );
});
};

$(document).ready(function() {$('.menu').initMenu();});

但是,当我为图像连接插件jQuery ColorBox时,脚本可能会开始冲突,菜单停止工作,所有子菜单都会扩展,我无法将其折叠。

也许谁会提示解决冲突,在哪里寻找原因?感谢/

1 个答案:

答案 0 :(得分:1)

问题很可能是你的TYPO安装在一个页面中加载了2个jQuery库实例。在这种情况下,noConflict不会帮助你,因为那是为了解决jQuery和其他使用$ namespace的JavaScript库之间的冲突,比如Prototype。

当您加载jQuery两次时发生的事情是,后者用所有已加载到该点的插件覆盖第一个库。 TYPO3s没有Javascript库或冲突的管理。如果两个扩展都支持t3jquery,那么你可能很幸运,这是一个试图完成TYPO缺乏的扩展。

如果他们不这意味着你几乎要靠自己试图找出答案:

1)哪些扩展加载jQuery

2)in oder

和3)设置所有其他扩展不加载jQuery,从而覆盖已经加载的jQuery实例。