如何在Smarty菜单中指定class =“active”

时间:2013-06-13 03:30:01

标签: php smarty

我希望当我点击任何链接时,点击的链接会获得class =“active”,

<div style="width: 180px;">     
    <ul class="nav nav-list well">
      <li class="active"><a href="#"><i class="icon-user"></i> Clientes</a></li>
      <li><a href="#"><i class="icon-user"></i> Clientes Potenciales</a></li>
      <li><a href="#"><i class="icon-user"></i> Suplidores</a></li>
      <li><a href="#"><i class="icon-user"></i> Partners</a></li>
      <li><a href="#"><i class="icon-user"></i> Contactos</a></li>
    </ul>
</div>

我尝试这样做:

        <li class="{if {$smarty.server.REQUEST_URI} == 'clientes'}active{/if}"><a href="#"><i class="icon-user"></i> Clientes</a></li>
        <li class="{if {$smarty.server.REQUEST_URI} == 'clientes2'}active{/if}"><a href="#"><i class="icon-user"></i> Clientes2</a></li>

但没有运气,它不起作用,任何人都可以帮助我吗?我试图用Smarty做到这一点

1 个答案:

答案 0 :(得分:1)

您需要使用javascript:

<div style="width: 180px;">     
    <ul class="nav nav-list well">
      <li id="li_0" class="active"><a href="#"><i class="icon-user"></i> Clientes</a></li>
      <li id="li_1"><a href="#"><i class="icon-user"></i> Clientes Potenciales</a></li>
      <li id="li_2"><a href="#"><i class="icon-user"></i> Suplidores</a></li>
      <li id="li_3"><a href="#"><i class="icon-user"></i> Partners</a></li>
      <li id="li_4"><a href="#"><i class="icon-user"></i> Contactos</a></li>
    </ul>
</div>
<script>
    var listItems=4;

    for (var i=0;i<listItems;i++) {
        document.getElementById("li_"+i).onclick=function() {
            resetClasses();
            this.className="active";
        }
    }

    function resetClasses() {
        for (var i=0;i<listItems;i++) {
            document.getElementById("li_"+i).className="";
        }
    }
</script>