Привет всем!
Вот решил обратиться к коллективному разуму, так как тех . поддержка не смогла мне помочь.
Есть задача сформировать меню на подобие vertical_multilevel стандартного bitrix:menu, но стой разницей, что submenu должны открывать по клику на родительский пункт. Сейчас стандартный компонент открывается по onmouseover. Все сделал, как положено в этом случае: скопировал в свое пространство имен, отредактировал css по свой шаблон, попробовал исправить стандартный script.js, вот он …
var jsvhover = function()
{
var menuDiv = document.getElementById("vertical-multilevel-menu");
if (!menuDiv)
return;
var nodes = menuDiv.getElementsByTagName("li");
for (var i=0; i<nodes.length; i++)
{
nodes[i].onmouseover = function()
{
this.className += " jsvhover";
}
nodes[i].onmouseout = function()
{
this.className = this.className.replace(new RegExp(" jsvhover\\b"), "");
}
}
}
if (window.attachEvent)
window.attachEvent("onload", jsvhover);
Но компонент упрямо открывает вложенные папки по onmouseover.
Причем удивляет следующее:
1) При добавлении alert(‘блабла’); после nodes[i].onmouseover = function() окошка алерта выскакивает
2) При попытке закоментарить nodes[i].onmouseover = function() либо другой участок этого кода поведение компонента не меняет.
Господа! Как можно побороть этот «упрямый» компонент?
p.s. На сайте присутствует два меню (горизонтальное - horizontal_multilevel и вертикальное- vertical_multilevel), причем вертикальное полностью динамическое и дублирует часть вертикального меню.
Вот решил обратиться к коллективному разуму, так как тех . поддержка не смогла мне помочь.
Есть задача сформировать меню на подобие vertical_multilevel стандартного bitrix:menu, но стой разницей, что submenu должны открывать по клику на родительский пункт. Сейчас стандартный компонент открывается по onmouseover. Все сделал, как положено в этом случае: скопировал в свое пространство имен, отредактировал css по свой шаблон, попробовал исправить стандартный script.js, вот он …
var jsvhover = function()
{
var menuDiv = document.getElementById("vertical-multilevel-menu");
if (!menuDiv)
return;
var nodes = menuDiv.getElementsByTagName("li");
for (var i=0; i<nodes.length; i++)
{
nodes[i].onmouseover = function()
{
this.className += " jsvhover";
}
nodes[i].onmouseout = function()
{
this.className = this.className.replace(new RegExp(" jsvhover\\b"), "");
}
}
}
if (window.attachEvent)
window.attachEvent("onload", jsvhover);
Но компонент упрямо открывает вложенные папки по onmouseover.
Причем удивляет следующее:
1) При добавлении alert(‘блабла’); после nodes[i].onmouseover = function() окошка алерта выскакивает
2) При попытке закоментарить nodes[i].onmouseover = function() либо другой участок этого кода поведение компонента не меняет.
Господа! Как можно побороть этот «упрямый» компонент?
p.s. На сайте присутствует два меню (горизонтальное - horizontal_multilevel и вертикальное- vertical_multilevel), причем вертикальное полностью динамическое и дублирует часть вертикального меню.