亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

單擊列表項時,自定義展開/折疊菜單列表會折疊

單擊列表項時,自定義展開/折疊菜單列表會折疊

森林海 2023-04-20 10:14:33
css我在和中制作了自定義展開/折疊列表javascript。這是我的代碼:componentDidMount() {var togglerCons = document.getElementsByClassName("caretCons");    var c;    for (c = 0; c < togglerCons.length; c++) {      togglerCons[c].addEventListener("click", function() {        this.parentElement          .querySelector(".nestedCons")          .classList.toggle("activeCons");        this.classList.toggle("caretCons-down");      });    }  <li className="caretCons">                <Link to={"/ConsignmentList"}>                  <span                    onClick={() =>                      this.props.updateTypeOfConsignmentList("general")                    }                  >                    {content[lang].consignmentlist}                  </span>                </Link>                <ul className="nestedCons">                  <li onClick={this.getConsPerDepot}>                    {content[lang].consPerDepot}                  </li>                  <li onClick={this.getExpectedCons}>                    {content[lang].expected}                  </li>                  <li onClick={this.getAssignedCons}>                    {content[lang].assigned}                  </li>                  <li onClick={this.getUnassignedCons}>                    {content[lang].unassigned}                  </li>                </ul>              </li>}這是結果: https: //i.stack.imgur.com/jlBzT.png這是單擊“寄售清單”時發生的情況:https ://i.stack.imgur.com/07oPN.png到這里為止一切都如預期。問題是,當用戶單擊寄售清單(預期的、分配的等)下的一個列表項時,列表會折疊并變得像第一張照片。我想要的是當用戶單擊列表項時列表保持展開狀態而不是折疊。它應該僅在用戶單擊插入符號(小三角形)時折疊。這是CSS.caretCons {  cursor: pointer;  -webkit-user-select: none; /* Safari 3.1+ */  -moz-user-select: none; /* Firefox 2+ */  -ms-user-select: none; /* IE 10+ */  user-select: none;}.caretCons::before {  content: "\25B6";  color: black;  display: inline-block;  margin-right: 6px;}.caretCons-down::before {  -ms-transform: rotate(90deg);   -webkit-transform: rotate(90deg);   transform: rotate(90deg);  }.nestedCons {  display: none;}.activeCons {  display: block;}
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

您的問題之一是您將事件偵聽器直接添加到 DOM 元素,這是您在使用 React 時不應該做的事情,除非出于某種原因絕對必要。您應該改用 React 的onClick屬性,就像您在下面對列表項所做的那樣。

現在,關于單擊內部元素時列表折疊的問題,您可能需要查看事件冒泡?Event.stopPropagation引用的內容

祝你好運!


查看完整回答
反對 回復 2023-04-20
  • 1 回答
  • 0 關注
  • 185 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號