Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   как сделать меню из кнопок списком ? (https://javascript.ru/forum/misc/12206-kak-sdelat-menyu-iz-knopok-spiskom.html)

arkady21 06.10.2010 11:40

как сделать меню из кнопок списком ?
 
Уважаемые форумчане, может мне кто-нибудь подскажет решение пробемы? Вот фрагмент скрипта, генерирующий меню из xml файла. Проблема в том что я никак не могу сообразить, как сделать чтобы это меню выводилось списком типа
<ul> <li> <button>qweqwe</button></li> <li> <button>qweqwe</button></li></ul>
<ul> <li> <button>qweqwe</button></li> <li> <button>qweqwe</button></li></ul>
.................................................. .......
<ul> <li> <button>qweqwe</button></li> <li> <button>qweqwe</button></li></ul>
Вот фрагмент кода:
function setupMenu(menu)
			{
				if(!menu)
				{
					menu = main.CurrentMenu;
					if(!menu)
						menu = main.TopMenu;
				}
				
				document.all.MenuTitle.innerText = getAttrib(menu, "название");
				setProp("Меню.Название", document.all.MenuTitle.innerText);
				
				document.all.Menu.innerHTML = "<ul></ul>";
				
				main.CurrentMenu = menu;
				
				document.all.Menu.style.visibility="hidden";
				if(menu)
				{
					for(var i = 0; i < menu.childNodes.length; ++i)
					{
						var node = menu.childNodes[i];
						try
						{
							switch(node.nodeName)
							{
								case "кнопка":
								{
									var btn = document.createElement("button");
									
									document.all.Menu.appendChild(btn);
									btn.className = "Menu";
									
									var label = getAttrib(node, "надпись");
									if(label)
									{
										//alert("<table border=1 style='width:100px; border-collapse:collapse;' ><tr><td class=Menu style='word-wrap:break-word; vertical-align:middle; text-align:center;' /></tr></table>");
										btn.innerHTML = "<table border=0 style='width:100%; border-collapse:collapse;' ><tr><td class=Menu style='word-wrap:break-word; vertical-align:middle; text-align:center;'/></tr></table>";

										var cell = btn.childNodes[0].rows[0].cells[0];
										cell.innerText = label;
									}
									
									btn.tabIndex = i + 1;
									btn.menuItem = node;
									btn.onclick = clickItem;
									
									break;
								}
								default:
								{
									if(node.nodeName.charAt(0) != "#")
										throw new Error("неизвестный тип узла (меню): " + node.nodeName);
								}
							}
						}
						catch(err)
						{
							writeLog("Ошибка при разборе тега <" + menu.tagName + ">: " + err.description);
							//alert(err.description);
						}
						
					}
					
				}
				document.all.Menu.style.filter="progid:DXImageTransform.Microsoft.Fade(duration=.400);";
				document.all.Menu.filters[0].Apply();
				document.all.Menu.style.visibility="visible";
				document.all.Menu.filters[0].Play();
				main.setupUI();
			}

Может кто поможет решить проблему?


Часовой пояс GMT +3, время: 21:23.