根据更改的跨度类显示div

问题描述 投票:0回答:1
javascript mutation-observers
1个回答
0
投票

找到包含跨度和委托的最近容器

window.addEventListener('DOMContentLoaded',() => { // when page has loaded
  const container = document.getElementById('someContainer'); // change as needed 
  container.addEventListener('click', (e) => {
    const tgt = e.target.closest('span.swatch');
    if (!tgt) return; // not a swatch
    console.log(tgt.textContent, 'clicked')
  });

// somewhere else out of your control
  document.addEventListener('click', (e) => {
    const tgt = e.target.closest('span.swatch');
    if (!tgt) return; // not a swatch
    document.querySelectorAll('span.swatch').forEach(span => span.classList.toggle('selected',span===tgt))
  });



});
.selected { border: 1px solid red; }
<div id="someContainer">
...

<span class="swatch swatch-image span1 selected">Span 1</span>
<span class="swatch swatch-image span2">Span 2</span>


...
</div>

© www.soinside.com 2019 - 2024. All rights reserved.