Показать сообщение отдельно
  #1 (permalink)  
Старый 15.03.2011, 21:59
Новичок на форуме
Отправить личное сообщение для kudenv Посмотреть профиль Найти все сообщения от kudenv
 
Регистрация: 10.03.2011
Сообщений: 6

помогите mouseout doHide не коректно работает!
не оставьте без внимания - нужен добрый совет!
Функция doHide производит скрытие елеменов меню списка ul id="submenu" только если указатель мыши переходит к новому елементу верхнего списка ul id="menu". При преходе с елемента списка ul id="submenu" скрытие не происходит.
<ul id="menu" class="menu">
				<li><a href="#">item 1&nbsp </a></li>
				<li><a href="#">item 2&nbsp </a></li>
				<li><a href="#">item 3</a>
					<ul id="submenu" class="submenu">
						<li><a href="#">item 3 sub 1</a></li>
						<li><a href="#">item 3 sub 2</a></li>
					</ul>
				</li>
			</ul>

function doMenu (li){
	var oli = li.childNodes;
	var len = oli.length;
	if (len > 1) {
		for (var i = 0; i < len; i++) {
			if (oli[i].nodeType == 1) {
			   if (oli[i].tagName == 'UL') {
			     return oli[i];
			   }}}} };
function doShow(e) {     
	if (e) {
		var t = e.target;
		var pN = t.parentNode;
			if (pN.tagName == 'LI') {
				if (doMenu(pN)) {
					var oUl = doMenu(pN);
						oUl.style.display = "block";
}}}};

function doHide (e) {

	if (e) {
		var d = document;
		var t = e.target;
		var n = e.relatedTarget;	
		if (t.parentNode.parentNode.className != 'submenu') {
			console.log('1');
			document.getElementById('submenu').style.display = 'none';}
		else document.getElementById('submenu').style.display = 'block';} }
function doEvent (event){
	document.addEventListener('mouseover', doShow, false);
	document.addEventListener('mouseout', doHide, true);
}
doEvent();
Ответить с цитированием