Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   помогите mouseout doHide не коректно работает! (https://javascript.ru/forum/dom-window/15843-pomogite-mouseout-dohide-ne-korektno-rabotaet.html)

kudenv 15.03.2011 21:59

помогите 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();

розовый слоник 16.03.2011 18:03

дайте угадаю вы проверяете работу скрипта в ИЕ ?


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