Показать сообщение отдельно
  #1 (permalink)  
Старый 16.07.2012, 17:17
Аватар для zilker
Профессор
Отправить личное сообщение для zilker Посмотреть профиль Найти все сообщения от zilker
 
Регистрация: 30.07.2011
Сообщений: 189

Не срабатывает обертка фун-и в IE8
День добрый. Восьмой осел никак не хочет показывать подменю.
В разметке, после кода меню, идет обработчик -
portfolio.onmouseover = handleMouseenter(ShowSubMenu);

Вот сама обертка -
function handleMouseenter(handler) {
    return function(e) {
        e = e || event; // IE
        var toElement = e.relatedTarget || e.srcElement; // IE
        var fromElement = toElement;

        // проверяем, мышь пришла с элемента внутри текущего?
        while (toElement && toElement !== this) {
            toElement = toElement.parentNode;
        }
        if (toElement == this || fromElement.parentNode.id == "subMenu") { // да, внутри
            return; // значит мы перешли на родителя из потомка, лишнее событие
        }

        return handler.call(this, e);
    };
}
- взято с этого сайта с небольшим дополнением.
Вот сама фун-я -
function ShowSubMenu() {
    document.getElementById("subMenu").style.display = "block";
    var check = 0;
    function ShowSubMenuButton() {
        var subMenuButton = document.getElementsByClassName("subMenuButton");
        subMenuButton[check].style.display = "block";
        check++;
        if (check == 5) {
            clearInterval(timer);
        }
    }
    var timer = setInterval(ShowSubMenuButton, 50);
}

Везде работает, в осле нет. Вызов
ShowSubMenu()
в консоли срабатывает. Вызов
handleMouseenter(ShowSubMenu)
- просто выводит функцию в консоль,
handleMouseenter(ShowSubMenu())
- тоже выводит в консоль но срабатывает (меню показывается).
Походу туплю на какой-то мелочи, но на какой....
Ответить с цитированием