Модераторы: diadiavova
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> xsl меню 
:(
    Опции темы
Денис2201
Дата 18.8.2011, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 18.8.2011

Репутация: нет
Всего: нет



Никак не могу вывести 4-ый уровень меню на одном уровне с 3-им.
Заранее спасибо.

Код

<?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="/document">
        <xsl:apply-templates select="structure[show=1]"/>
        
    </xsl:template>
    
    <xsl:template match="structure">
        <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
        <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
        
        <script LANGUAGE='javascript'>
            <xsl:text> $(document).ready(function(){
                
            $("#column</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").hide();
            $("#megaanchor</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").show();
                
            $("#megaanchor</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").click(function(){
                
            $("#column</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").slideToggle(1);
                
                $(".column").hide() ;
                });
                
                });
                
                
                
                
                
        </xsl:text></SCRIPT>
        <script LANGUAGE='javascript'><xsl:text>
                var current = null;
                function check(obj) {
                if(obj==current){
                obj.className = 'megaanchor';
                current = null;
                }else{
                obj.className = 'megaanchor1';
                if (current!=null){
                current.className = 'megaanchor';
                }
                current = obj;
                }
                }
                
        </xsl:text></SCRIPT>
        
<xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
    <div class="megaanchor" id="megaanchor{@id}" onclick="check(this);"><a><xsl:value-of disable-output-escaping="yes" select="name"/></a></div>
        <xsl:if test="count(structure[show = 1]) &gt; 0">
            
            <div class="column" id="column{@id}">
                
                <xsl:apply-templates select="structure[show=1]" mode="pool"/>
                
        </div>         </xsl:if>
        
        
    </xsl:template>
    
    <xsl:template match="structure" mode="pool">
        
        
        
        <script LANGUAGE='javascript'>
            <xsl:text>
                $(document).ready(function () {
            $('#megamenu</xsl:text><xsl:value-of select="@id"/><xsl:text> li').hover(
                function () {
                var maxLeft = $('.header').width(),
            el = $('#level</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>', this);
                
                if ( el.find('a').length != 0 ) {
                el.show();
                if ( Math.max(0, el[0].offsetLeft - ( maxLeft - el[0].offsetWidth ) ) != 0 ) {
                el.css("left", (maxLeft - el[0].offsetWidth) + "px");
                }
                //показать подменю
                el.hide().slideDown(0);
                }
                },
                function () {
                //скрыть подменю
                $('.level', this).slideUp(0);
                }
                );
                });
        </xsl:text></SCRIPT>
        
        <xsl:choose>
            
            <!-- 000000000000000000000000000000000000000000000000000 -->
            <xsl:when  test="count(structure[show = 1]) &gt; 0">
                
                
                
                
    <ul id="megamenu{@id}" class="megamenu"><li><xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
                        <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                        
                        <ul id="level{@id}" class="level"><li>
                                
                                <xsl:apply-templates select="structure[show=1]" mode="sub"/>
                            </li>
                            
                            
                            
                                <xsl:apply-templates select="structure[show=1]" mode="level4"/>
                                
                            
                            
                            
                            
                        </ul>
                </li></ul>
            </xsl:when>
            <!-- 0000000000000000000000000000000000000000000000 -->
            <xsl:otherwise>
    <ul id="megamenu{@id}" class="megamenu"><li><xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
                        <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                        
                        <ul id="level{@id}" class="level"><li>
                                <xsl:apply-templates select="structure[show=0]" mode="sub"/>
                                
                            </li>
                            
                            <xsl:apply-templates select="structure[show=0]" mode="level4"/>
                        </ul>
            </li></ul>            </xsl:otherwise>
            
            
            <!-- 000000000000000000000000000000000000000000000000000 -->
            <!-- <div class="column1">
                
    <xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
                <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
            </div>-->
            
        </xsl:choose>
        
    </xsl:template>
    
    <xsl:template match="structure" mode="sub">
        <li>
<xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
            <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
            
        </li>
        
    </xsl:template>
    </xsl:stylesheet> 


Добавлено через 2 минуты и 35 секунд
В прошлом коде было маленькая ошибка, немного подкорректировал код, но проблему пока не решил

Код

<?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="/document">
        <xsl:apply-templates select="structure[show=1]"/>
        
    </xsl:template>
    
    <xsl:template match="structure">
        <!-- Запишем в константу ID структуры, данные для которой будут выводиться пользователю -->
        <xsl:variable name="current_structure_id" select="/document/structure/current_structure_id"/>
        
        <script LANGUAGE='javascript'>
            <xsl:text> $(document).ready(function(){
                
            $("#column</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").hide();
            $("#megaanchor</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").show();
                
            $("#megaanchor</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").click(function(){
                
            $("#column</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>").slideToggle(1);
                
                $(".column").hide() ;
                });
                
                });
                
                
                
                
                
        </xsl:text></SCRIPT>
        <script LANGUAGE='javascript'><xsl:text>
                var current = null;
                function check(obj) {
                if(obj==current){
                obj.className = 'megaanchor';
                current = null;
                }else{
                obj.className = 'megaanchor1';
                if (current!=null){
                current.className = 'megaanchor';
                }
                current = obj;
                }
                }
                
        </xsl:text></SCRIPT>
        
<xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
    <div class="megaanchor" id="megaanchor{@id}" onclick="check(this);"><a><xsl:value-of disable-output-escaping="yes" select="name"/></a></div>
        <xsl:if test="count(structure[show = 1]) &gt; 0">
            
            <div class="column" id="column{@id}">
                
                <xsl:apply-templates select="structure[show=1]" mode="pool"/>
                
        </div>         </xsl:if>
        
        
    </xsl:template>
    
    <xsl:template match="structure" mode="pool">
        
        
        
        <script LANGUAGE='javascript'>
            <xsl:text>
                $(document).ready(function () {
            $('#megamenu</xsl:text><xsl:value-of select="@id"/><xsl:text> li').hover(
                function () {
                var maxLeft = $('.header').width(),
            el = $('#level</xsl:text>
            <xsl:value-of select="@id"/>
            <xsl:text>', this);
                
                if ( el.find('a').length != 0 ) {
                el.show();
                if ( Math.max(0, el[0].offsetLeft - ( maxLeft - el[0].offsetWidth ) ) != 0 ) {
                el.css("left", (maxLeft - el[0].offsetWidth) + "px");
                }
                //показать подменю
                el.hide().slideDown(0);
                }
                },
                function () {
                //скрыть подменю
                $('.level', this).slideUp(0);
                }
                );
                });
        </xsl:text></SCRIPT>
        
        <xsl:choose>
            
            <!-- 000000000000000000000000000000000000000000000000000 -->
            <xsl:when  test="count(structure[show = 1]) &gt; 0">
                
                
                
                
    <ul id="megamenu{@id}" class="megamenu"><li><xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
                        <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                        
                        <ul id="level{@id}" class="level"><li>
                                
                                <xsl:apply-templates select="structure[show=1]" mode="sub"/>
                            </li>
                            
                            
                            <div class="level4">
                                <xsl:apply-templates select="structure[show=0]" mode="sub"/>
                                
                            </div>
                            
                            
                            
                        </ul>
                </li></ul>
            </xsl:when>
            <!-- 0000000000000000000000000000000000000000000000 -->
            <xsl:otherwise>
    <ul id="megamenu{@id}" class="megamenu"><li><xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
                        <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
                        
                        <ul id="level{@id}" class="level"><li>
                                <xsl:apply-templates select="structure[show=0]" mode="sub"/>
                                
                            </li>
                            
                            <xsl:apply-templates select="structure[show=1]" mode="sub"/>
                        </ul>
            </li></ul>            </xsl:otherwise>
            
            
            <!-- 000000000000000000000000000000000000000000000000000 -->
            <!-- <div class="column1">
                
    <xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
                <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
            </div>-->
            
        </xsl:choose>
        
    </xsl:template>
    
    <xsl:template match="structure" mode="sub">
        <li>
<xsl:variable name="link"><xsl:choose><xsl:when test="is_external_link=1"><xsl:value-of disable-output-escaping="yes" select="external_link"/></xsl:when><xsl:otherwise><xsl:value-of disable-output-escaping="yes" select="link"/></xsl:otherwise></xsl:choose></xsl:variable>
            <a href="{$link}"><xsl:value-of disable-output-escaping="yes" select="name"/></a>
            
        </li>
        
    </xsl:template>
</xsl:stylesheet> 

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "XML/XSLT"
diadiavova

Прежде чем опубликовать вопрос, попробуйте воспользоваться поиском - возможно тема уже поднималась.

Также рекомендуем Вам зайти в раздел FAQ ,раздел дополняется и, возможно, там вы увидите готовое решение.

Для ответов на часто задаваемые вопросы существует FAQ раздела. Новости можно публиковать в разделе новостей. Для статей так же есть специальный раздел

Желаем удачи в Вашем деле!


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, diadiavova.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | XML, XSL | Следующая тема »


 




[ Время генерации скрипта: 0.1117 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.