Need help with menu script
A warm hello,
I am really stuck with a navigation problem.
The final navigation is on this page:
http://www.tutte.de
Under the main navigation a subnavi is rendered with the help of jquery. There are always columns with 3 subnavi points. This works on my browser. Client says, it's not working on their pcs. There is only one colum with all subnavi points.
Now i am really stuck, with my javascript code. Perhaps anyone can help. Here is my menu.js:
-
$(document).ready(
function(){
$("div.submenu").hide();
var numSubItems = 3;
var $top = $("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu");
var $menu = $("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu > ul");
var $items = $("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu > ul > li");
$menu.remove();
var $ul = $("<ul></ul");
$items.each(function(i, item){
$ul.append($(item));
if((i+1) % numSubItems == 0){
$top.append($ul);
$ul = $("<ul></ul>");
}
});
if($items.length % numSubItems != 0){
$top.append($ul);
var $ul = $("<ul></ul");
}
$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").show();
$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").addClass("active");
var l=$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").children().length;
var w=0;
for( var i=0; i<l; i++){
w=w+$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").children().eq(i).width();
}
$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").width(w);
$("ul.menu > li ").not("ul.menu > li > ul > li ").hover(
function(){
$("div.submenu").hide();
var numSubItems = 3;
var $top = $(this).find("div.submenu");
var $menu = $(this).find("div.submenu > ul");
var $items = $(this).find("div.submenu > ul > li");
$menu.remove();
var $ul = $("<ul></ul");
$items.each(function(i, item){
$ul.append($(item));
if((i+1) % numSubItems == 0){
$top.append($ul);
$ul = $("<ul></ul>");
}
});
if($items.length % numSubItems != 0){
$top.append($ul);
var $ul = $("<ul></ul");
}
$(this).find("div.submenu").show();
$(this).addClass("active");
var l=$(this).find("div.submenu").children().length;
var w=0;
for( var i=0; i<l; i++){
w=w+$(this).find("div.submenu").children().eq(i).width();
}
$(this).find("div.submenu").width(w);
},
function(){
$(this).find("div.submenu").hide();
$(this).removeClass("active");
$("div.submenu").hide();
var numSubItems = 3;
var $top = $("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu");
var $menu = $("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu > ul");
var $items = $("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu > ul > li");
$menu.remove();
var $ul = $("<ul></ul");
$items.each(function(i, item){
$ul.append($(item));
if((i+1) % numSubItems == 0){
$top.append($ul);
$ul = $("<ul></ul>");
}
});
if($items.length % numSubItems != 0){
$top.append($ul);
var $ul = $("<ul></ul");
}
$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").show();
$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").addClass("active");
var l=$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").children().length;
var w=0;
for( var i=0; i<l; i++){
w=w+$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").children().eq(i).width();
}
$("ul.menu > li.selected ").not("ul.menu > li.selected > ul > li.selected ").find("div.submenu").width(w);
}
)
});
Your help is much appreciated. Thanks a lot.