現在、コードの背後にある 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")
}