質問編集履歴

4 質問削除の取り消し

teratail

teratail score 463

2017/11/02 08:25  投稿

回答がない。回答がない。
リンクをクリックしたときに、左のメニューを制御したいです
回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。
こんにちは。
Windows10でASP.NET MVCのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
これを修正したいです。
###試したこと
(1)データベースから、User一覧を取得し、_Main.cshtmlに展開して、リンクとして表組しました。
(2)リンクをクリックすると、dashboardのページを開きます。
(3)ところが、左に表示しているメニューが、ダッシュボードではなく、サポートのところになってしまっています。
###発生している問題・エラーメッセージ
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
###該当のソースコード
```C#
_LeftMenu.cshtml
      <ul class="sidebar-menu">
      @*ダッシュボード*@  @Html.Partial("_LeftMenuContentDashboard")
      @*ユーザー*@          @Html.Partial("_LeftMenuContentUser")
      @*サポート*@          @Html.Partial("_LeftMenuContentSupport")
      @*マニュアル*@      @Html.Partial("_LeftMenuContentManual")       
      </ul>
```
```C#
Userの_Main.cshtml
@Html.RouteLink(
          @Html.DisplayFor(modelitem => Model.UsersData[i].UserId),                             new {     Controller = "Dashboard",                 Action = "Index",
             userid = @Html.DisplayFor(modelitem => Model.UsersData[i].UserId)
     })
```
これでリンクはできています。クリックでDashboardに遷移します。
```C#
_LeftMenuContentDashboard.cshtml
@using MyApp.App_GlobalResources
<li class="treeview">
  <a href="/Dashboard/Index">
      <i class="fa fa-dashboard" style="font-size: 18px"></i>
      <span style="padding-left: 20px">ダッシュボード</span>
  </a>
</li>
```
これが左メニューのダッシュボードのところ。部分ビューです。
このダッシュボードをクリックすると、ダッシュボードのところが反転して選択していることがわかります。
```JavaScript
  $(document).ready(function () {
      var buttonExport = document.getElementsByClassName("highcharts-button");
      if (buttonExport.length > 0) {
     $(buttonExport).click(function () { $('.highcharts-contextmenu > div > div').first().html("@Resource.ExportButtonTitle") });
  }
      SetMainMenuFocus();
  });
  function myFunction() {
      document.getElementById("hideTreeView1").style.display = 'none';
      document.getElementById("hideTreeView2").style.display = 'none';
      document.getElementById("hideTreeView3").style.display = 'none';
  }
  /* Menu */
  function SetMainMenuFocus() {
      if (document.location.href == (document.location.protocol + '//' + document.location.hostname + '/')
          || document.location.href.lastIndexOf("Top") > -1) {
      OpenParent($("ul.sidebar-menu > li.treeview").first());
      return;
      }
      var currentUrl = document.location.pathname;
      var link = $("ul.sidebar-menu > li.treeview > ul.treeview-menu > li > aside.left-side > a");
      var isMatchLink = null;
      if (link != null) {
      $.each(link, function () {
          var href = $(this).attr('href');
          if (href != null && href != '' && (IsmatchUrl(currentUrl, href) || IsmatchUrl(href, currentUrl))) {
              isMatchLink = $(this);
              return true;
          }
      });
  if (isMatchLink == null) {
      $.each(link, function () {
          var href = $(this).attr('href');
          var currentUrl_Index;
          if (currentUrl.lastIndexOf("/") == currentUrl.length - 1) {
              currentUrl_Index = currentUrl + "Index";
          } else {
              currentUrl_Index = currentUrl + "/Index";
          }
          if (href != null && IsmatchUrl(currentUrl_Index, href)) {
              isMatchLink = $(this);
              return true;
          }
      });
  }
          if (isMatchLink != null) {
              var parent = isMatchLink.closest('ul.treeview-menu');
              while (parent != null && (parent.is("ul") || parent.is('li'))) {
      OpenParent(parent);
      parent = parent.parent();
              }
          }
          $.each(link, function () {
      $(this).children('div.menu-item').removeClass('menu-item-hover');
  });
          isMatchLink.children('div.menu-item').addClass('menu-item-hover');
      }
  }
  function OpenParent(element) {
      if (element != null) {
          if (element.is('li')) {
      element.addClass("active");
  }
          else if (element.is("ul")) {
      element.css("display", "block");
  }
      }
  }
  function IsmatchUrl(compairWithUrl, toCompairUrl) {
      if (compairWithUrl.indexOf(toCompairUrl) > -1) {
          return true;
      }
      return false;
  }
```
メニューのJavaScript。全文。ひょっとして、これのどこかで設定するのでしょうか?
まえのJavascriptの質問と併せて考えると、
```Javascript
  function OpenParent(element) {
      if (element != null) {
          if (element.is('li')) {
      element.addClass("active");
  }
          else if (element.is("ul")) {
      element.css("display", "block");
  }
      }
  }
```
が濃厚です。
これがメニュー全部で走るので、最後の項目がactiveになるのではないか。
とすると、いま表示したいメニュー(ダッシュボード)を引数で与えて、それとマッチしたとき、と書けばよいのでは。
C#ならかんたんで、
ダッシュボードをtargetstringに入れるとすると、
```
  function OpenParent(element, string targetstring) {
      if (element != null) {
          if (element.is('li') && element.Contains(targetstring)) {
      element.addClass("active");
  }
          else if (element.is("ul")) {
      element.css("display", "block");
  }
      }
  }
```
でよいはずなのですが・・・・。
書いてみました。これで、
例外 下記ソースコードの行 75、列 9 で発生しました。http://localhost:0000/Scripts/sidemenu.js
0x8000ffff - JavaScript runtime error: オブジェクトの呼び出しが無効です が発生しました
とのことです。
keywordには、Dashboardという文字を入れています。
```Javascript
function OpenParent(element, keyword) {
  if (element != null) {
      try {
          if (element.is('li') &&
              -1 < element.context.__proto__.pathname.indexOf(keyword)//<--この行でエラー。
          ) {
              element.addClass("active");
          }
          else if (element.is("ul")) {
              element.css("display", "block");
          }
      }
      catch (e) {
          error = e;
      }
  }
}
```
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
  • JavaScript

    21067 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • ASP.NET

    634 questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

3 回答がない。回答がない。

cancat

cancat score 239

2017/10/30 22:38  投稿

リンクをクリックしたときに、左のメニューを制御したいです
回答がない。回答がない。
こんにちは。
Windows10でASP.NET MVCのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
これを修正したいです。
###試したこと
(1)データベースから、User一覧を取得し、_Main.cshtmlに展開して、リンクとして表組しました。
(2)リンクをクリックすると、dashboardのページを開きます。
(3)ところが、左に表示しているメニューが、ダッシュボードではなく、サポートのところになってしまっています。
###発生している問題・エラーメッセージ
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
###該当のソースコード
```C#
_LeftMenu.cshtml
       <ul class="sidebar-menu">
       @*ダッシュボード*@   @Html.Partial("_LeftMenuContentDashboard")
       @*ユーザー*@           @Html.Partial("_LeftMenuContentUser")
       @*サポート*@           @Html.Partial("_LeftMenuContentSupport")
       @*マニュアル*@       @Html.Partial("_LeftMenuContentManual")         
       </ul>
```
```C#
Userの_Main.cshtml
 @Html.RouteLink(
           @Html.DisplayFor(modelitem => Model.UsersData[i].UserId),                              new {      Controller = "Dashboard",                  Action = "Index",
              userid = @Html.DisplayFor(modelitem => Model.UsersData[i].UserId)
      })
```
これでリンクはできています。クリックでDashboardに遷移します。
```C#
_LeftMenuContentDashboard.cshtml
@using MyApp.App_GlobalResources
<li class="treeview">
   <a href="/Dashboard/Index">
       <i class="fa fa-dashboard" style="font-size: 18px"></i>
       <span style="padding-left: 20px">ダッシュボード</span>
   </a>
</li>
```
これが左メニューのダッシュボードのところ。部分ビューです。
このダッシュボードをクリックすると、ダッシュボードのところが反転して選択していることがわかります。
```JavaScript
   $(document).ready(function () {
       var buttonExport = document.getElementsByClassName("highcharts-button");
       if (buttonExport.length > 0) {
      $(buttonExport).click(function () { $('.highcharts-contextmenu > div > div').first().html("@Resource.ExportButtonTitle") });
   }
       SetMainMenuFocus();
   });
   function myFunction() {
       document.getElementById("hideTreeView1").style.display = 'none';
       document.getElementById("hideTreeView2").style.display = 'none';
       document.getElementById("hideTreeView3").style.display = 'none';
   }
   /* Menu */
   function SetMainMenuFocus() {
       if (document.location.href == (document.location.protocol + '//' + document.location.hostname + '/')
           || document.location.href.lastIndexOf("Top") > -1) {
       OpenParent($("ul.sidebar-menu > li.treeview").first());
       return;
       }
       var currentUrl = document.location.pathname;
       var link = $("ul.sidebar-menu > li.treeview > ul.treeview-menu > li > aside.left-side > a");
       var isMatchLink = null;
       if (link != null) {
       $.each(link, function () {
           var href = $(this).attr('href');
           if (href != null && href != '' && (IsmatchUrl(currentUrl, href) || IsmatchUrl(href, currentUrl))) {
               isMatchLink = $(this);
               return true;
           }
       });
   if (isMatchLink == null) {
       $.each(link, function () {
           var href = $(this).attr('href');
           var currentUrl_Index;
           if (currentUrl.lastIndexOf("/") == currentUrl.length - 1) {
               currentUrl_Index = currentUrl + "Index";
           } else {
               currentUrl_Index = currentUrl + "/Index";
           }
           if (href != null && IsmatchUrl(currentUrl_Index, href)) {
               isMatchLink = $(this);
               return true;
           }
       });
   }
           if (isMatchLink != null) {
               var parent = isMatchLink.closest('ul.treeview-menu');
               while (parent != null && (parent.is("ul") || parent.is('li'))) {
       OpenParent(parent);
       parent = parent.parent();
               }
           }
           $.each(link, function () {
       $(this).children('div.menu-item').removeClass('menu-item-hover');
   });
           isMatchLink.children('div.menu-item').addClass('menu-item-hover');
       }
   }
   function OpenParent(element) {
       if (element != null) {
           if (element.is('li')) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
   function IsmatchUrl(compairWithUrl, toCompairUrl) {
       if (compairWithUrl.indexOf(toCompairUrl) > -1) {
           return true;
       }
       return false;
   }
```
メニューのJavaScript。全文。ひょっとして、これのどこかで設定するのでしょうか?
まえのJavascriptの質問と併せて考えると、
```Javascript
   function OpenParent(element) {
       if (element != null) {
           if (element.is('li')) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
```
が濃厚です。
これがメニュー全部で走るので、最後の項目がactiveになるのではないか。
とすると、いま表示したいメニュー(ダッシュボード)を引数で与えて、それとマッチしたとき、と書けばよいのでは。
C#ならかんたんで、
ダッシュボードをtargetstringに入れるとすると、
```
   function OpenParent(element, string targetstring) {
       if (element != null) {
           if (element.is('li') && element.Contains(targetstring)) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
```
でよいはずなのですが・・・・。
書いてみました。これで、
例外 下記ソースコードの行 75、列 9 で発生しました。http://localhost:0000/Scripts/sidemenu.js
0x8000ffff - JavaScript runtime error: オブジェクトの呼び出しが無効です が発生しました
とのことです。
keywordには、Dashboardという文字を入れています。
```Javascript
function OpenParent(element, keyword) {
   if (element != null) {
       try {
           if (element.is('li') &&
               -1 < element.context.__proto__.pathname.indexOf(keyword)//<--この行でエラー。
           ) {
               element.addClass("active");
           }
           else if (element.is("ul")) {
               element.css("display", "block");
           }
       }
       catch (e) {
           error = e;
       }
   }
}
```
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。回答がない。
  • JavaScript

    21067 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • ASP.NET

    634 questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

2 あddd

cancat

cancat score 239

2017/04/28 17:28  投稿

リンクをクリックしたときに、左のメニューを制御したいです
こんにちは。
Windows10でASP.NET MVCのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
これを修正したいです。
###試したこと
(1)データベースから、User一覧を取得し、_Main.cshtmlに展開して、リンクとして表組しました。
(2)リンクをクリックすると、dashboardのページを開きます。
(3)ところが、左に表示しているメニューが、ダッシュボードではなく、サポートのところになってしまっています。
###発生している問題・エラーメッセージ
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
###該当のソースコード
```C#
_LeftMenu.cshtml
       <ul class="sidebar-menu">
       @*ダッシュボード*@   @Html.Partial("_LeftMenuContentDashboard")
       @*ユーザー*@           @Html.Partial("_LeftMenuContentUser")
       @*サポート*@           @Html.Partial("_LeftMenuContentSupport")
       @*マニュアル*@       @Html.Partial("_LeftMenuContentManual")         
       </ul>
```
```C#
Userの_Main.cshtml
 @Html.RouteLink(
           @Html.DisplayFor(modelitem => Model.UsersData[i].UserId),                              new {      Controller = "Dashboard",                  Action = "Index",
              userid = @Html.DisplayFor(modelitem => Model.UsersData[i].UserId)
      })
```
これでリンクはできています。クリックでDashboardに遷移します。
```C#
_LeftMenuContentDashboard.cshtml
@using MyApp.App_GlobalResources
<li class="treeview">
   <a href="/Dashboard/Index">
       <i class="fa fa-dashboard" style="font-size: 18px"></i>
       <span style="padding-left: 20px">ダッシュボード</span>
   </a>
</li>
```
これが左メニューのダッシュボードのところ。部分ビューです。
このダッシュボードをクリックすると、ダッシュボードのところが反転して選択していることがわかります。
```JavaScript
   $(document).ready(function () {
       var buttonExport = document.getElementsByClassName("highcharts-button");
       if (buttonExport.length > 0) {
      $(buttonExport).click(function () { $('.highcharts-contextmenu > div > div').first().html("@Resource.ExportButtonTitle") });
   }
       SetMainMenuFocus();
   });
   function myFunction() {
       document.getElementById("hideTreeView1").style.display = 'none';
       document.getElementById("hideTreeView2").style.display = 'none';
       document.getElementById("hideTreeView3").style.display = 'none';
   }
   /* Menu */
   function SetMainMenuFocus() {
       if (document.location.href == (document.location.protocol + '//' + document.location.hostname + '/')
           || document.location.href.lastIndexOf("Top") > -1) {
       OpenParent($("ul.sidebar-menu > li.treeview").first());
       return;
       }
       var currentUrl = document.location.pathname;
       var link = $("ul.sidebar-menu > li.treeview > ul.treeview-menu > li > aside.left-side > a");
       var isMatchLink = null;
       if (link != null) {
       $.each(link, function () {
           var href = $(this).attr('href');
           if (href != null && href != '' && (IsmatchUrl(currentUrl, href) || IsmatchUrl(href, currentUrl))) {
               isMatchLink = $(this);
               return true;
           }
       });
   if (isMatchLink == null) {
       $.each(link, function () {
           var href = $(this).attr('href');
           var currentUrl_Index;
           if (currentUrl.lastIndexOf("/") == currentUrl.length - 1) {
               currentUrl_Index = currentUrl + "Index";
           } else {
               currentUrl_Index = currentUrl + "/Index";
           }
           if (href != null && IsmatchUrl(currentUrl_Index, href)) {
               isMatchLink = $(this);
               return true;
           }
       });
   }
           if (isMatchLink != null) {
               var parent = isMatchLink.closest('ul.treeview-menu');
               while (parent != null && (parent.is("ul") || parent.is('li'))) {
       OpenParent(parent);
       parent = parent.parent();
               }
           }
           $.each(link, function () {
       $(this).children('div.menu-item').removeClass('menu-item-hover');
   });
           isMatchLink.children('div.menu-item').addClass('menu-item-hover');
       }
   }
   function OpenParent(element) {
       if (element != null) {
           if (element.is('li')) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
   function IsmatchUrl(compairWithUrl, toCompairUrl) {
       if (compairWithUrl.indexOf(toCompairUrl) > -1) {
           return true;
       }
       return false;
   }
```
メニューのJavaScript。全文。ひょっとして、これのどこかで設定するのでしょうか?
まえのJavascriptの質問と併せて考えると、
```Javascript
   function OpenParent(element) {
       if (element != null) {
           if (element.is('li')) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
```
が濃厚です。
これがメニュー全部で走るので、最後の項目がactiveになるのではないか。
とすると、いま表示したいメニュー(ダッシュボード)を引数で与えて、それとマッチしたとき、と書けばよいのでは。
C#ならかんたんで、
ダッシュボードをtargetstringに入れるとすると、
```
   function OpenParent(element, string targetstring) {
       if (element != null) {
           if (element.is('li') && element.Contains(targetstring)) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
```
でよいはずなのですが・・・・。
書いてみました。これで、  
例外 下記ソースコードの行 75、列 9 で発生しました。http://localhost:0000/Scripts/sidemenu.js  
0x8000ffff - JavaScript runtime error: オブジェクトの呼び出しが無効です が発生しました  
とのことです。  
keywordには、Dashboardという文字を入れています。  
 
```Javascript  
function OpenParent(element, keyword) {  
   if (element != null) {  
       try {  
           if (element.is('li') &&  
               -1 < element.context.__proto__.pathname.indexOf(keyword)//<--この行でエラー。  
           ) {  
               element.addClass("active");  
           }  
           else if (element.is("ul")) {  
               element.css("display", "block");  
           }  
       }  
       catch (e) {  
           error = e;  
       }  
   }  
}  
```  
 
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
  • JavaScript

    21067 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • ASP.NET

    634 questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

1 追記

cancat

cancat score 239

2017/04/28 16:42  投稿

リンクをクリックしたときに、左のメニューを制御したいです
こんにちは。
Windows10でASP.NET MVCのアプリケーションを開発しています。
Visual Studio 2017 Communityを使っています。
###前提・実現したいこと
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
これを修正したいです。
###試したこと
(1)データベースから、User一覧を取得し、_Main.cshtmlに展開して、リンクとして表組しました。
(2)リンクをクリックすると、dashboardのページを開きます。
(3)ところが、左に表示しているメニューが、ダッシュボードではなく、サポートのところになってしまっています。
###発生している問題・エラーメッセージ
データベースからリストしたリンクをクリックしたときに、左のメニューが、予期せぬメニューに移動します。
###該当のソースコード
```C#
_LeftMenu.cshtml
       <ul class="sidebar-menu">
       @*ダッシュボード*@   @Html.Partial("_LeftMenuContentDashboard")
       @*ユーザー*@           @Html.Partial("_LeftMenuContentUser")
       @*サポート*@           @Html.Partial("_LeftMenuContentSupport")
       @*マニュアル*@       @Html.Partial("_LeftMenuContentManual")         
       </ul>
```
```C#
Userの_Main.cshtml
 @Html.RouteLink(
           @Html.DisplayFor(modelitem => Model.UsersData[i].UserId),                              new {      Controller = "Dashboard",                  Action = "Index",
              userid = @Html.DisplayFor(modelitem => Model.UsersData[i].UserId)
      })
```
これでリンクはできています。クリックでDashboardに遷移します。
```C#
_LeftMenuContentDashboard.cshtml
@using MyApp.App_GlobalResources
<li class="treeview">
   <a href="/Dashboard/Index">
       <i class="fa fa-dashboard" style="font-size: 18px"></i>
       <span style="padding-left: 20px">ダッシュボード</span>
   </a>
</li>
```
これが左メニューのダッシュボードのところ。部分ビューです。
このダッシュボードをクリックすると、ダッシュボードのところが反転して選択していることがわかります。
```JavaScript
   $(document).ready(function () {
       var buttonExport = document.getElementsByClassName("highcharts-button");
       if (buttonExport.length > 0) {
      $(buttonExport).click(function () { $('.highcharts-contextmenu > div > div').first().html("@Resource.ExportButtonTitle") });
   }
       SetMainMenuFocus();
   });
   function myFunction() {
       document.getElementById("hideTreeView1").style.display = 'none';
       document.getElementById("hideTreeView2").style.display = 'none';
       document.getElementById("hideTreeView3").style.display = 'none';
   }
   /* Menu */
   function SetMainMenuFocus() {
       if (document.location.href == (document.location.protocol + '//' + document.location.hostname + '/')
           || document.location.href.lastIndexOf("Top") > -1) {
       OpenParent($("ul.sidebar-menu > li.treeview").first());
       return;
       }
       var currentUrl = document.location.pathname;
       var link = $("ul.sidebar-menu > li.treeview > ul.treeview-menu > li > aside.left-side > a");
       var isMatchLink = null;
       if (link != null) {
       $.each(link, function () {
           var href = $(this).attr('href');
           if (href != null && href != '' && (IsmatchUrl(currentUrl, href) || IsmatchUrl(href, currentUrl))) {
               isMatchLink = $(this);
               return true;
           }
       });
   if (isMatchLink == null) {
       $.each(link, function () {
           var href = $(this).attr('href');
           var currentUrl_Index;
           if (currentUrl.lastIndexOf("/") == currentUrl.length - 1) {
               currentUrl_Index = currentUrl + "Index";
           } else {
               currentUrl_Index = currentUrl + "/Index";
           }
           if (href != null && IsmatchUrl(currentUrl_Index, href)) {
               isMatchLink = $(this);
               return true;
           }
       });
   }
           if (isMatchLink != null) {
               var parent = isMatchLink.closest('ul.treeview-menu');
               while (parent != null && (parent.is("ul") || parent.is('li'))) {
       OpenParent(parent);
       parent = parent.parent();
               }
           }
           $.each(link, function () {
       $(this).children('div.menu-item').removeClass('menu-item-hover');
   });
           isMatchLink.children('div.menu-item').addClass('menu-item-hover');
       }
   }
   function OpenParent(element) {
       if (element != null) {
           if (element.is('li')) {
       element.addClass("active");
   }
           else if (element.is("ul")) {
       element.css("display", "block");
   }
       }
   }
   function IsmatchUrl(compairWithUrl, toCompairUrl) {
       if (compairWithUrl.indexOf(toCompairUrl) > -1) {
           return true;
       }
       return false;
   }
```
メニューのJavaScript。全文。ひょっとして、これのどこかで設定するのでしょうか?
まえのJavascriptの質問と併せて考えると、  
 
```Javascript  
   function OpenParent(element) {  
       if (element != null) {  
           if (element.is('li')) {  
       element.addClass("active");  
   }  
           else if (element.is("ul")) {  
       element.css("display", "block");  
   }  
       }  
   }  
```  
が濃厚です。  
これがメニュー全部で走るので、最後の項目がactiveになるのではないか。  
とすると、いま表示したいメニュー(ダッシュボード)を引数で与えて、それとマッチしたとき、と書けばよいのでは。  
 
C#ならかんたんで、  
 
ダッシュボードをtargetstringに入れるとすると、  
```  
   function OpenParent(element, string targetstring) {  
       if (element != null) {  
           if (element.is('li') && element.Contains(targetstring)) {  
       element.addClass("active");  
   }  
           else if (element.is("ul")) {  
       element.css("display", "block");  
   }  
       }  
   }  
```  
でよいはずなのですが・・・・。  
 
###補足情報(言語/FW/ツール等のバージョンなど)
Microsoft Visual Studio Community 2017
Version 15.0.26228.9 D15RTWSVC
Microsoft .NET Framework
Version 4.6.01586
です。
よろしくお願いします。
  • JavaScript

    21067 questions

    JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

  • ASP.NET

    634 questions

    ASP.NETは動的なWebサイトやWebアプリケーション、そしてWebサービスを構築出来るようにする為、Microsoftによって開発されたウェブアプリケーション開発フレームワークです。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る