Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Почему проподает div??? при наведении на его ссылк 
V
    Опции темы
Yagmort
Дата 15.1.2011, 23:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Хотел сделать ввиде выпадающего меню но не получилось. Навожу на "Справочники" выпадает "1,2,3" хочу навести курсор на "1,2,3"-они исчезают:( где то я ошибся... кто поможет ?
Код

<html >
<head >
    <title></title>
    <style type="text/css">
        .diver
        {visibility:hidden;}
     </style>
<script type="text/javascript">
    function onMover(d) {
        document.getElementById(d).style.visibility = 'visible';
    };
    function onMout(d) {
       document.getElementById(d).style.visibility = 'hidden';
    };
</script>
</head>
<body>
                <table onmouseout="onMout('sprav');">
                   <tr><td><a href="" onmouseover="onMover('sprav');" >Справочники</a></td></tr>
                   <tr><td > 
                     <div id="sprav" style="width: 100%" class="diver">
                       <a href="">1</a>
                       <a href="">2</a>
                       <a href="">3</a>
                    </div>                 
                   </td></tr>
               </table>
</body>
</html>


Это сообщение отредактировал(а) Yagmort - 16.1.2011, 00:06
PM MAIL   Вверх
Amphiluke
Дата 16.1.2011, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Вот вариант исправления ситуации:
Код

<html >
<head >
    <title></title>
    <style type="text/css">
        .diver
        {visibility:hidden;}
     </style>
<script type="text/javascript">
    function onMover(d) {
        document.getElementById(d).style.visibility = 'visible';
    };
    function onMout(e, d) {
       if (!e) e = event;
       var relTgt = e.relatedTarget || e.toElement;
       while (relTgt) {
           if (relTgt.id == "tb") {return;} else {relTgt = relTgt.parentNode;}
       }
       document.getElementById(d).style.visibility = 'hidden';
    };
</script>
</head>
<body>
                <table onmouseout="onMout(event,'sprav');" id="tb">
                   <tr><td><a href="" onmouseover="onMover('sprav');" >Справочники</a></td></tr>
                   <tr><td > 
                     <div id="sprav" style="width: 100%" class="diver">
                       <a href="">1</a>
                       <a href="">2</a>
                       <a href="">3</a>
                    </div>                 
                   </td></tr>
               </table>
</body>
</html>

Если есть возможность, пользуйтесь методом hover() из jQuery.
PM   Вверх
Yagmort
Дата 16.1.2011, 00:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



А можно спросить, что таким способом мы проверяем ? Так то все работает отлично спасибо...
Код


  if (!e) e = event;
       var relTgt = e.relatedTarget || e.toElement;
       while (relTgt) {
           if (relTgt.id == "tb") {return;} else {relTgt = relTgt.parentNode;}
       }



Это сообщение отредактировал(а) Yagmort - 16.1.2011, 00:30
PM MAIL   Вверх
Amphiluke
Дата 16.1.2011, 00:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Цитата(Yagmort @  16.1.2011,  03:28 Найти цитируемый пост)
А можно спросить, что таким способом мы проверяем ?

Проверяем, куда переместился указатель мыши. Если это дочерний элемент таблицы, значит, не убираем меню, а если указатель вышел за пределы таблицы, то убираем. Имейте в виду, что событие mouseout срабатывает даже если указатель смещается на какой-то дочерний элемент.

Это сообщение отредактировал(а) Amphiluke - 16.1.2011, 00:32
PM   Вверх
Yagmort
Дата 16.1.2011, 00:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 339
Регистрация: 17.6.2009

Репутация: нет
Всего: -1



Цитата(Amphiluke @ 16.1.2011,  00:32)
Цитата(Yagmort @  16.1.2011,  03:28 Найти цитируемый пост)
А можно спросить, что таким способом мы проверяем ?

Проверяем, куда переместился указатель мыши. Если это дочерний элемент таблицы, значит, не убираем меню, а если указатель вышел за пределы таблицы, то убираем. Имейте в виду, что событие mouseout срабатывает даже если указатель смещается на какой-то дочерний элемент.

В принцепе на 70 % код понятен. Благодарю. 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0623 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.