День добрый. Восьмой осел никак не хочет показывать подменю.
В разметке, после кода меню, идет обработчик -
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())
- тоже выводит в консоль но срабатывает (меню показывается).
Походу туплю на какой-то мелочи, но на какой....