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

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

向頁面添加復雜元素時的事件委托與直接綁定

向頁面添加復雜元素時的事件委托與直接綁定

慕絲7291255 2019-11-19 10:06:15
我有一些這樣的標記(類只是為了說明):<ol id="root" class="sortable">  <li>    <header class="show-after-collapse">Top-Line Info</header>    <section class="hide-after-collapse">      <ol class="sortable-connected">        <li>          <header class="show-after-collapse">Top-Line Info</header>          <section class="hide-after-collapse">            <div>Content A</div>          </section>        </li>      </ol>    </section>  </li>  <li>    <header/>    <section class="hide-after-collapse">      <ol class="sortable-connected">        <li>          <header/>          <section class="hide-after-collapse">            <div>Content B</div>          </section>        </li>      </ol>    </section>  </li></ol>也就是說,嵌套可排序列表??膳判虻牟寮妥銐蛄耍驗楸M管內部列表已連接,但每個li(以下稱“ item”)都保持其級別。這些項目具有始終可見的標題和在展開狀態下可見的部分,可通過單擊標題來切換。用戶可以隨意從任一級別添加和刪除項目。添加頂級商品將在其中包含一個空的嵌套列表。我的問題是關于新創建項目的JS初始化:雖然它們將共享一些通用功能,但我可以通過$("#root").on("click", "li > header", function() {  $(this).parent().toggleClass("collapsed");});和li.collapsed section {  display: none;}(旁聽的問題:這是使用details / summary HTML5標簽的合適位置嗎?對于這些標簽是否甚至可以將其納入最終規范似乎有些懷疑,我想進行一次滑動過渡,所以似乎我想無論如何都需要JS。但是我把這個問題扔給了大眾。你好,大眾。)如果根列表是保證在頁面加載時存在的唯一(相關)元素,則.on()才能有效工作,我必須將所有事件綁定到該元素,并為每個事件拼出精確的選擇器,因為明白它。因此,例如,要將單獨的功能綁定到彼此相鄰的兩個按鈕上,我每次必須完整拼出選擇器,$("#root").on("change", "li > section button.b1", function() {  b1Function();}).on("change", "li > section button.b2", function() {  b2Function();});準確嗎?在這種情況下,在將新項目添加到頁面時放棄.on()并綁定我的事件是否更有意義?如果響應有所不同,則項目總數最多可能會打幾十個。
查看完整描述

3 回答

?
慕尼黑的夜晚無繁華

TA貢獻1864條經驗 獲得超6個贊

我并沒有創建許多性能測試,但我認為這樣做的目的是在單擊鏈接時顯示性能差異百分比。單擊更多鏈接會提供更大的數據集,應該提供更準確的統計平均值,對嗎?還是我錯過了什么?我還認為.find()在兩個測試中使用都很好,因為它不會僅.find()在一個測試中使用,而不會在另一個測試中使用,這會扭曲性能,這就是我相信您的測試存在如此性能差距的原因。 

查看完整回答
反對 回復 2019-11-19
  • 3 回答
  • 0 關注
  • 534 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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