2017-09-13 4 views
-3

レンダリングされている前のページのリンクにアクティブなクラスを追加します。私の作業のシナリオは、この私の現在アクティブなページは、私がリンクアクティブなクラスを追加してレンダリングされる前のページのリンクを強調表示します

http://localhost:52791/Apartment/Details

で詳細ページをレンダリングし、このページから

http://localhost:52791/Apartment/Home

です詳細ページのリンクはブラウザのURLセクション以外のどこにも表示されないので、ホームページのリンクにアクティブなクラスを追加して、そのページを強調表示したい。

ありがとうございました。

答えて

0

私はあなたが

var previouspage = document.referrer; 

で、前のページのURLを取得し、前のページ要素にアクティブなクラスを追加するための条件を適用する必要があり、最初は前のページのリンクを強調するために、これを解決しました。 ここに私のjavascript完全に説明するコード...アクティブなページ、前のページの一致条件を確認することを回避するのに役立ちます私のカスタムページ設定に追加されたオフセットは、このアクティブなページで

$(function() { 
    debugger; 
    var index = 0; 
    var url = window.location.pathname; 
    var activePage = url.substring(url.lastIndexOf('/') + 1); 
    var previousPage = document.referrer.substring(document.referrer.lastIndexOf('/') + 1); 
    var previousPageUrl = document.referrer.substring(document.referrer.indexOf('/') + 17); 
    var activepageoffset = url.substring(url.indexOf('/') + 11,url.lastIndexOf('/')); 
    if (activepageoffset == "UserInfo" || activepageoffset == "Detail") 
    { 
     index = 1; 
    } 

    $('.sidebar-menu li a').each(function() 
    { 
     var currentPage = this.href.substring(this.href.lastIndexOf('/') + 1); 
     if (currentPage == activePage) 
     { 
      if ($('.sidebar-menu li').hasClass('active')) 
       { $('.sidebar-menu li').removeClass('active'); } 
      $(this).parent().addClass('active'); 
     } 
     else if (index == 1) 
     { 
      if (currentPage == previousPage) 
      { 
       if ($('.sidebar-menu li').hasClass('active')) 
       { $('.sidebar-menu li').removeClass('active'); } 
       $('.sidebar-menu a[href="' + previousPageUrl + '"]').parent().addClass('active'); 
      } 
      } 
     }); 
}) 

、理由foreachループアクティブなオフセットが設定されないように、現在のページの値をリセットします。

関連する問題