1

我使用了来自http://www.jqueryload.com的固定导航。重新设计了它,效果很好。

单击“导航”时,我尝试添加深色叠加层。我在这里找到了几个解决方案,但是当我实现它们时,导航脚本不再起作用。我认为这是因为这里找到的解决方案也使用了“this”。但我不知道如何重写它们。单击第一个 li = navigatie 时如何添加叠加层?在此先感谢这是我使用的代码:

HTML

    <div id="nav" class="menu">
    <ul>
    <li>
    <a href="#">Navigatie<span> <img src="/images/plus.gif" 
    width="12px" height="12px"  alt="plus" /></span></a>
    <ul>
    <li><a href="./index.php">Home</a></li>
    <li class="keukens"><a href="keukens.php">Keukens</a></li>       
    <li class="app"><a href="apparatuur.php">Apparatuur</a></li>
    <li class="interieur"><a href="interieur.php">Interieur</a></li>
    <li class="contact"><a href="contact.php">Contact</a> 
    </ul>
    </ul>

CSS

    #nav{float:left;}
    #nav ul{list-style-type:none; color:#000;}
    .menu{ font: 100% Arial, Helvetica, sans-serif ;padding-top:100px;
    color:#000;height:30px;background-color:;}    
    .menu a:hover{background-color:;}
    .menu a {text-decoration: none;padding: 0;color:#000;outline:none;}
    .menu ul{list-style: none;margin:0;padding-left:10px;}
    .menu ul li{padding:0;float:left;}
    .menu ul li ul li{padding:0;float:none;margin: 0 0 0 0px;width:100%;}
    .menu ul li ul{position: relatieve;border: 0px solid #C3D1EC;
    box-shadow: 0px 0px #CCCCCC;margin-top: -1px; display:none;
    padding:20px 0px 0px 0px;}
    .active ul{display:block !important;}
    .active a{border: 0px solid #C3D1EC;border-bottom: 0;
    box-shadow: 0 0px 0px #CCCCCC;display: block;height: 29px;
    padding: 0 0;position:relative;z-index: 1;}
    .active a:hover{background-color:#000;color:#CCC;}
    .sub{ left:10px;position: absolute; top:180px;}

查询:

    (function($){
    $.fn.fixedMenu=function(){
    return this.each(function(){
        var menu= $(this);
        menu.find('ul li > a').bind('click',function(){
        if ($(this).parent().hasClass('active')){
            $(this).parent().removeClass('active');
        }
        else{
            $(this).parent().parent().find('.active').removeClass('active');
            $(this).parent().addClass('active');
        }
        })
    });

}  
    })

    (jQuery);

工作版本可以在这里找到http://www.tossdesign.nl

4

1 回答 1

0

你是对的,这是错误的 $(this) 。

改为这样做:

 var menu= $('#nav');

还要仔细检查您的菜单结构是否具有有效的 HTML。我必须从您提供的链接中复制原始 html 才能使其正常工作。

我将此代码用于js

 var menu= $('#nav');
    menu.find('ul li > a').bind('click',function(){
        if ($(this).parent().hasClass('active')){
            $(this).parent().removeClass('active');
        }
        else{
            $(this).parent().parent().find('.active').removeClass('active');
            $(this).parent().addClass('active');
        }
    })

作为参考,这是html:

   <ul>
     <li class="active">
 <a href="#">Navigatie<span> <img width="12px" height="12px" alt="plus" src="/images/plus.gif"></span></a>
       <ul>
           <li><a href="./index.php">Home</a></li>
           <li class="keukens"><a href="keukens.php">Keukens</a></li>       
           <li class="app"><a href="apparatuur.php">Apparatuur</a></li>
           <li class="interieur"><a href="interieur.php">Interieur</a></li>
            <li class="contact"><a href="contact.php">Contact</a> 
           </li>
        </ul>
     </li>
   </ul>
于 2013-04-29T16:51:06.160 回答