Изменение шаблона МагазинГруппыТоваровНаГлавной

#
Изменение шаблона МагазинГруппыТоваровНаГлавной
Добрый день!
Стандартный xsl-шаблон "МагазинГруппыТоваровНаГлавной" выводит группы товаров, а при клике по ним разворачиваются подгруппы. При повторном клике по родительской группе, подгруппы сворачиваются.
Необходимо сделать, чтобы подгруппы разворачивались не при клике, а при наведении мыши. А сворачивались при наведении на другую группу или выхода курсора мыши за пределы меню. Выглядеть должно аналогично верхнему меню на сайте hostcms.ru  Только с группами и подгруппами магазина.

Код xsl шаблона:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
   <xsl:output xmlns="http://www.w3.org/TR/xhtml1/strict" doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN" encoding="utf-8" indent="yes" method="html" omit-xml-declaration="no" version="1.0" media-type="text/xml"/>
   
   <!-- МагазинГруппыТоваровНаГлавной -->
   
   <xsl:template match="/">
      <xsl:apply-templates select="/shop"/>
   </xsl:template>
   
   <!-- Шаблон для магазина -->
   <xsl:template match="/shop">
      <SCRIPT>
         <xsl:comment>
            <xsl:text disable-output-escaping="yes">
               <![CDATA[
               function show_hide_menu(id)
               {
               if (obj = document.getElementById(id)) {
               obj.style.display == 'none' ? obj.style.display = 'block' : obj.style.display = 'none';
               return false; }
               return true;
               }
               ]]>
            </xsl:text>
         </xsl:comment>
      </SCRIPT>
      
   <h2><a href="{path}" title="Каталог">Каталог </a></h2>
      
      <ul class="left_menu" id="shop_menu">
         <xsl:apply-templates select="group"/>
      </ul>
   </xsl:template>
   
   <!-- Шаблон для групп товара -->
   <xsl:template match="group">
      <li>
         <!-- Если это подпункт (родитель не равен 0) - выводим слева от него тире -->
         <xsl:if test="@parent != 0">
            &#8212;
         </xsl:if>
         
         <a href="{/shop/path}{fullpath}" onClick="return show_hide_menu('{@id}');">
            <xsl:value-of disable-output-escaping="yes" select="name"/>
         </a>
         
         <!-- Если есть подгруппы -->
         <xsl:if test="group">
            <ul class="left_menu gray_link gray" id="{@id}" style="display: none;">
               <xsl:apply-templates select="group"/>
            </ul>
         </xsl:if>
      </li>
   </xsl:template>
</xsl:stylesheet>


Путем замены onClick="return show_hide_menu('{@id}';"> на onmouseover="return show_hide_menu('{@id}';">  удалось добиться раскрывания меню при наведении. Скрывается при повторном наведении. А вот как сделать, чтобы скрывалось, при наведении на другую группу или при выходе за рамки меню?
Подскажите, пожалуйста!
#
Re: Изменение шаблона МагазинГруппыТоваровНаГлавной
Думаю, что скорее всего нужно использовать onmouseout, разделить show_hide_menu на show_menu и hide_menu. И доработать java-скрипт

<SCRIPT>
         <xsl:comment>
            <xsl:text disable-output-escaping="yes">
               <![CDATA[
               function show_hide_menu(id)
               {
               if (obj = document.getElementById(id)) {
               obj.style.display == 'none' ? obj.style.display = 'block' : obj.style.display = 'none';
               return false; }
               return true;
               }
               ]]>
            </xsl:text>
         </xsl:comment>
      </SCRIPT>


Но знаний не хватает (((
#
Re: Изменение шаблона МагазинГруппыТоваровНаГлавной
вам нужно использовать два события:
onMouseOver - показываем
onMouseOut  - скрываем

разработка сайтов, фирменных стилей, интерфейсов
#
Re: Изменение шаблона МагазинГруппыТоваровНаГлавной
Да, это я понимаю.. Но не понимаю как реализовать скрытие в соответствии с заданными условиями: скрытие при наведении на другую группу или при выходе за рамки меню?
#
Re: Изменение шаблона МагазинГруппыТоваровНаГлавной
<a href="{/shop/path}{fullpath}" onMouseOver="return show_hide_menu('{@id}');"  onMouseOut="return show_hide_menu('{@id}');">
разработка сайтов, фирменных стилей, интерфейсов
#
Re: Изменение шаблона МагазинГруппыТоваровНаГлавной
Так я пробовала. При этом варианте подгруппы пропадают, как только уводиться мышка от группы. То есть нет возможности перейти в подменю. Нужно чтоб при раскрытой группе можно было перейти в её подгруппы. А при переносе мышке на другую группу, подгруппы той группы сворачивались, а новые открывались.

Очень наверное запутанно пишу.. В общем полная аналогия меню на этом сайте, только на основе «МагазинГруппыТоваровНаГлавной»
#
Re: Изменение шаблона МагазинГруппыТоваровНаГлавной
Я думаю на onMouseOut нужно дополнительные условия прописать в java-скрипте.
Типа:
при переносе мышки из родительской группы на её подгруппы, подгруппы развернуты.
При переносе мышки из родительской группы на другую родительскую группу, подгруппы первой группы сворачиваются, а второй раскрываются.
При переносе мышки за пределы меню, все подгруппы сворачиваются
Авторизация