0

次のコードをより効率的に記述する方法はありますか?

このナビゲーション セクションは CMS の一部であり、非表示に設定されているため、展開しても表示されないことに注意してください。動作する次のコードがあります。つまり、ナビゲーション項目を再書き込みし、location.href に従って現在のクラスを追加しますが、より効率的に記述できることを望んでいましたか?

HTML

    <ul>
      <li><a class="current" href="#"><strong>Level 1</strong></a>
        <ul class="sub">
          <li><a class="" href="#">sub level</a></li>
          <li><a class="" href="#">sub level</a></li>
          <li><a class="" href="#">sub level</a></li>
        </ul>
      </li>
    </ul>   

jQuery

最初の部分は隠しセクションを書き換えます

 $(document).ready(function () {
$('menu li:eq(4)').html('<ul><li><a href="/level1" class="current"><strong>level1</strong></a>'
    +'<ul class="sub"><li><a href="/sub-level-a" class="">Sub Level A</a></li>'
    +'<li><a href="/sub-level-b" class="">Sub Level B</a></li>'
    +'<li><a href="/sub-level-c" class="">Sub Level C</a></li></ul></li></ul>');

});

クラスを追加します

      $(document).ready(function () {
        if(window.location.href.indexOf("/ucpoolvehicles")!=-1)
                    {
        $("ul.sub li a:eq(0)").addClass("current");
                    } else {

        $("ul.sub li a:eq(0)").removeClass("current");
        }
        if(window.location.href.indexOf("/car-rental")!=-1)
                    {
        $("ul.sub li a:eq(1)").addClass("current");
                    } else {

        $("ul.sub li a:eq(1)").removeClass("current");
        }

        if(window.location.href.indexOf("/private-vehicle-usage")!=-1)
                    {
        $("ul.sub li a:eq(2)").addClass("current");
                    } else {

        $("ul.sub li a:eq(2)").removeClass("current");

        }

        });

私は私の指示に明確であることを願っています よろしくお願いします

4

2 に答える 2

0

これは隠しセクションなしで機能します

jQuery(document).ready(function ($) {
    alert(window.location.href);

    var url = window.location.href;

    // Will only work if string in href matches with location
    $('ul.sub li a[href="' + url + '"]').addClass('active');

    // Will also work for relative and absolute hrefs
    $('ul.sub li a').filter(function () {
        return this.href == url;
    }).addClass('active');
});
于 2014-09-09T11:26:34.500 に答える
0

これはうまくいくはずです:

$(function() {
    $("ul.sub li a").removeClass("current");
    var href = window.location.href;
    if (href.indexOf("/ucpoolvehicles") != -1) {
        $("ul.sub li a:eq(0)").addClass("current");
    } else if (href.indexOf("/car-rental") != -1) {
        $("ul.sub li a:eq(1)").addClass("current");
    } else if (href.indexOf("/private-vehicle-usage") != -1) {
        $("ul.sub li a:eq(2)").addClass("current");
    }
});
于 2012-08-21T09:37:19.300 に答える