-1

現在、コードの背後にある c# で生成されたリストがあります。すべてのボタンから送信される onclick 関数が 1 つあります。私がしたいのは、クリックが発生したときにボタンのオブジェクトを渡すことです。これにより、その特定のボタンの toggleClass を実行できます。私はそれを行う他の方法があると確信していますが..これが私の背後にあるコードです

protected void createMenu(TreeView navTree) {

        foreach(TreeNode node in navTree.Nodes){

        HtmlGenericControl li = new HtmlGenericControl("li");
        li.Attributes.Add("class", "toggle");
        navMenu.Controls.Add(li);

        HtmlGenericControl anchor = new HtmlGenericControl("a");
        anchor.Attributes.Add("href", "javascript:navButtonClick();");
        anchor.InnerText = node.Text;

        li.Controls.Add(anchor);


        HtmlGenericControl ul = new HtmlGenericControl("ul");
        li.Controls.Add(ul);
        ul.Attributes.Add("class", "subnav"); 

        foreach (TreeNode childNode in node.ChildNodes) {

            HtmlGenericControl child_li = new HtmlGenericControl("li");
            ul.Controls.Add(child_li);

            HtmlGenericControl childAnchor = new HtmlGenericControl("a");
            childAnchor.Attributes.Add("href", "#");
            childAnchor.Attributes.Add("class", "active");
            childAnchor.InnerText = childNode.Text;

            child_li.Controls.Add(childAnchor);

        }

        }

出力は次のようになります。

<div id="sidebar">

サイト

  <li class="toggle-is-open"><a href=""javascript:navButtonClick();"">Stanislaus</a>
    <ul class="subnav">
       <li><a href="#" class="active">linnie<span class="quantity">7</span></a></li>
       <li><a href="#" class="active">tom<span class="quantity">7</span></a></li>
    </ul>
  </li>

  <li class="toggle-is-open"><a href=""javascript:navButtonClick();">Merced</a>
     <ul class="subnav">
        <li><a href="#" class="active">emmanuel<span class="quantity">7</span></a></li>
     </ul>

</nav>
    </div>

だから私は基本的に次のようなものが必要です

function navButtonClick(buttonID){
navMenu.getbyElementID(buttonID).toggleClass("is-open")

}

4

1 に答える 1