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时,脚本可能会开始冲突,菜单停止工作,所有子菜单都会扩展,我无法将其折叠。
也许谁会提示解决冲突,在哪里寻找原因?感谢/
答案 0 :(得分:1)
问题很可能是你的TYPO安装在一个页面中加载了2个jQuery库实例。在这种情况下,noConflict不会帮助你,因为那是为了解决jQuery和其他使用$ namespace的JavaScript库之间的冲突,比如Prototype。
当您加载jQuery两次时发生的事情是,后者用所有已加载到该点的插件覆盖第一个库。 TYPO3s没有Javascript库或冲突的管理。如果两个扩展都支持t3jquery,那么你可能很幸运,这是一个试图完成TYPO缺乏的扩展。
如果他们不这意味着你几乎要靠自己试图找出答案:
1)哪些扩展加载jQuery
2)in oder
和3)设置所有其他扩展不加载jQuery,从而覆盖已经加载的jQuery实例。