Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.11.2010, 23:11
Интересующийся
Отправить личное сообщение для gavnomaster Посмотреть профиль Найти все сообщения от gavnomaster
 
Регистрация: 24.05.2010
Сообщений: 27

ie и выпадающее меню onmouseover
http://test.soft-oskol.ru пример вот в Опере работает как надо, в ie же список скрывается сразу же, сижу уже час думаю что не так... Кто скажет как исправить?

top_nav.php
<?php

$out = "";
$out.= "<div class=\"top-nav-items\"><div class=\"top-nav-title\"><a href=\"$site/index.html\">Главная</a></div></div>";
$i = 1;
foreach ($base as $catname => $catArray) {
    $id = "subNav".($i++);
    $out.= "<div class=\"top-nav-items\" onMouseOver=\"javascript: ShowHide('$id');\" onMouseOut=\"javascript: ShowHide('$id');\">"
    ."<div class=\"top-nav-title\"><a href=\"$site/$catname/index.html\">$catArray[0]</a></div>";
    if (!empty($catArray)) {
        $out.= "<div id=\"$id\" class=\"collapsed\">";
        foreach ($catArray[1] as $k => $v) {
            $out.= "<div class=\"top-nav-item\"><a href=\"$site/$catname/$k.html\">$v[0]</a></div>";
        }
        $out.= "</div>";
    }
    $out.= "</div>";
}
$out.= "<div class=\"wrapper\"></div>";

?><script type="text/javascript">function ShowHide(id) { var obj = $(id); obj.className = (obj.className == "collapsed") ? "expanded" : "collapsed"; }</script><?php

echo $out;
unset($out);

?>
Ответить с цитированием
  #2 (permalink)  
Старый 08.11.2010, 11:42
2de 2de вне форума
Аспирант
Отправить личное сообщение для 2de Посмотреть профиль Найти все сообщения от 2de
 
Регистрация: 26.10.2010
Сообщений: 78

Открыл в ИЕ он матернулся на безопасность я разрешил выполнять скрипт и всё заработало.

Но во первых, это: id=\"$id\" почитайте из каких символов может состоять идентификатор. Во вторых в диве для которого Вы прописали событие есть ещё один вложеный, а это значит что попав мышкой на границу элемента показывается нужный див, но так как в этом диве содержится следующий див это значит что идет переход на другой элемент поэтому срабатывает событие овер из-за этого возможно и исчезает менюшка.
Ответить с цитированием
  #3 (permalink)  
Старый 08.11.2010, 12:40
Интересующийся
Отправить личное сообщение для gavnomaster Посмотреть профиль Найти все сообщения от gavnomaster
 
Регистрация: 24.05.2010
Сообщений: 27

Цитата:
Но во первых, это: id=\"$id\" почитайте из каких символов может состоять идентификатор.
А из каких он состоит subNav1, subNav2, ... subNavn? Замечание не по теме. Там див контейнер .top-nav-items в котором див с названием раздела .top-nav-title, еще один див контейнер #subNavn, который по умолчанию скрыт. Так вот события работают с самым первым дивом контейнером, но почему-то только в одном ие всё неправильно обрабатывается, как понял это возможно связано с позиционированием(известн й баг в ие). Как решить?

Последний раз редактировалось gavnomaster, 08.11.2010 в 12:43.
Ответить с цитированием
  #4 (permalink)  
Старый 08.11.2010, 13:05
2de 2de вне форума
Аспирант
Отправить личное сообщение для 2de Посмотреть профиль Найти все сообщения от 2de
 
Регистрация: 26.10.2010
Сообщений: 78

Сообщение от gavnomaster Посмотреть сообщение
А из каких он состоит subNav1, subNav2, ... subNavn?
Извиняюсь, забыл что это ПХПшный код.

Попробуйте события из этого места

$out.= "<div class=\"top-nav-items\" onMouseOver=\"javascript: ShowHide('$id');\" onMouseOut=\"javascript: ShowHide('$id');\">"


перенести сюда

."<div class=\"top-nav-title\"><a href=\"$site/$catname/index.html\">$catArray[0]</a></div>";


и сделать ссылку блоком тоесть вот так:
$out.= "<div class=\"top-nav-items\">"
."<div class=\"top-nav-title\"><a href=\"$site/$catname/index.html\" onMouseOver=\"javascript: ShowHide('$id');\" onMouseOut=\"javascript: ShowHide('$id');\" style=\"display: block;\">$catArray[0]</a></div>";
Ответить с цитированием
  #5 (permalink)  
Старый 08.11.2010, 13:11
Интересующийся
Отправить личное сообщение для gavnomaster Посмотреть профиль Найти все сообщения от gavnomaster
 
Регистрация: 24.05.2010
Сообщений: 27

Сообщение от 2de Посмотреть сообщение
Извиняюсь, забыл что это ПХПшный код.

Попробуйте события из этого места

$out.= "<div class=\"top-nav-items\" onMouseOver=\"javascript: ShowHide('$id');\" onMouseOut=\"javascript: ShowHide('$id');\">"


перенести сюда

."<div class=\"top-nav-title\"><a href=\"$site/$catname/index.html\">$catArray[0]</a></div>";


и сделать ссылку блоком тоесть вот так:
$out.= "<div class=\"top-nav-items\">"
."<div class=\"top-nav-title\"><a href=\"$site/$catname/index.html\" onMouseOver=\"javascript: ShowHide('$id');\" onMouseOut=\"javascript: ShowHide('$id');\" style=\"display: block;\">$catArray[0]</a></div>";
да так будет одинаково не работать и в опере(файерфоксе, хроме) и ишаке... мне не понятно почему в этом ублюдошном ишаке вечно всё что-то не так. я попробую a главным контейнером, и чтобы он содержимое показывал по хуверу.
Ответить с цитированием
  #6 (permalink)  
Старый 08.11.2010, 13:20
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от gavnomaster
мне не понятно почему в этом ублюдошном ишаке вечно всё что-то не так
Всё дело в руках, не волнуйтесь.
Ответить с цитированием
  #7 (permalink)  
Старый 08.11.2010, 13:35
2de 2de вне форума
Аспирант
Отправить личное сообщение для 2de Посмотреть профиль Найти все сообщения от 2de
 
Регистрация: 26.10.2010
Сообщений: 78

Какая версия ИЕ? В 8 всё ок
Ответить с цитированием
  #8 (permalink)  
Старый 08.11.2010, 14:03
Интересующийся
Отправить личное сообщение для gavnomaster Посмотреть профиль Найти все сообщения от gavnomaster
 
Регистрация: 24.05.2010
Сообщений: 27

Сообщение от 2de Посмотреть сообщение
Какая версия ИЕ? В 8 всё ок
да действительно обновил IE до восьмой версии(была седьмая) и всё заработало... Но все равно кто знает рецепт для 7 версии буду благодарен.
Ответить с цитированием
  #9 (permalink)  
Старый 08.11.2010, 14:09
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Сообщение от gavnomaster
обновил IE до восьмой версии(была седьмая) и всё заработало
Не самое обдуманное решение, т.к. IE6 еще активно пользуются

Последний раз редактировалось monolithed, 08.11.2010 в 14:40.
Ответить с цитированием
  #10 (permalink)  
Старый 09.11.2010, 01:21
Интересующийся
Отправить личное сообщение для gavnomaster Посмотреть профиль Найти все сообщения от gavnomaster
 
Регистрация: 24.05.2010
Сообщений: 27

http://test.soft-oskol.ru/admin.php ладно пока можете в админке (пароль - 1) полазить. может кто посоветует что по части "дизайна".
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Находится ли мышка над дивом ? (выпадающее меню) advsm jQuery 31 24.09.2014 17:50
Выпадающее меню на JS (подкатегории) Trueplayer Events/DOM/Window 5 18.09.2014 22:29
Jquery выпадающее меню Коля jQuery 4 26.01.2011 17:00
Выпадающее меню theo_ Общие вопросы Javascript 18 05.10.2009 11:34
Сделать выпадающее меню по аналогу SerG Общие вопросы Javascript 1 05.11.2008 15:05