Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Кто нибудь подскажет onmouseout при ul > li > ul, или все Великие (https://javascript.ru/forum/dom-window/15761-kto-nibud-podskazhet-onmouseout-pri-ul-li-ul-ili-vse-velikie.html)

kudenv 12.03.2011 11:30

Кто нибудь подскажет onmouseout при ul > li > ul, или все Великие
 
гуру подскажите ! Ранее обращался но ответа некто недал !
тема топика не работает li.onmouseout = hide (ul) но так и не получил ответа!

? таков
в такой структуре
<ul id="main">
  <li><a>item 1</a></li>
  <li><a>item 1</a>
       <ul id="sub" class="sub">
             <li><a>sub itim 1</a></li>
       </ul>
  </li>
</ul>


при onmouseover должен раскрываться внутренний список, а при onmouseout закрываться. В итоге спсок раскрывается но в закрытии возникаю вопросы на которые я ответить не могу прошу помощи.

как правильно организовать скрытие внутреннего списка при onmouseout.
я пробывал вот так но работает на половину если теяет фокус с списка внутреннего и переходит на строницу то не скрывает
doHide = function (event) { 
	    if (event.target) { 
	        var ob = event.target; 
	        var re = event.relatedTarget; 
	        var t = re.parentNode.parentNode; 
	        var z = re.parentNode; 
	        if (re.tagName == 'A' &&  t.className == 'menu') { 
	            var o = document.getElementById('submenu').className = 'hide'; 
	        //  var t = re.parentNode.parentNode; 
	            //console.log("object event "+ob.tagName+" from tag "+ re.tagName+" parent"+re.parentNode.tagName +"  111"+t.className); 
	            console.log(t.className) 
	        } else if (t.tagName != 'UL') { 
	            var o = document.getElementById('submenu').className = 'hide'; 
	            console.log ('good'); 
	            //if (t.onBlur) { 
	              //  console.log('asdadas');} 
	          }  
	          //console.log(ob.tagName +" "+ob.parentNode.tagName+" "+ re.tagName); 
	         // ob.onMouseout = function () {ob.className = 'hide';} 
	    } 
	};

function doso (event) { // здесь вешаю обработчик события для отрибута  - если я все правильно понял 
	 document.addEventListener('mouseover',doVisible,false); 
	 document.addEventListener('mouseout',doHide,true); 
	}; 
	doso();


кто нить поделитесь знанием, потому что, я так запутался кто за что отвечает и кому то назначать. Некоторые вопросы остаются загадками а толкового ответа ..., я в конце концов не прошу код за меня написать..просто заступорился и все .. нужно человечесое объянение

ksa 12.03.2011 11:42

Цитата:

Сообщение от kudenv
при onmouseover должен раскрываться внутренний список, а при onmouseout закрываться

Такое можно сделать и без скрипта...

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
li .sub {
	display: none;
}
li:hover .sub {
	display: block;
}
</style>
<script type="text/javascript">
</script></head>
<body>
<ul id="main">
  <li><a>item 1</a></li>
  <li><a>item 1</a>
       <ul id="sub" class="sub">
             <li><a>sub itim 1</a></li>
       </ul>
  </li>
</ul>
</body>
</html>

kudenv 12.03.2011 12:34

да не спорю но мне для самомобразование нужен скрипт.


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