PROGBLOG Developers Blog

空想家 Developers Blog

稼ぐ力? とにかくスキルが欲しい。

IE で クラスをtoggleさせるには

はじめに

以前、classList でクラスを操作する覚書をしたが、IE ではそのうちのtoggle() が使えない沼に一瞬だけハマった。

解決方法

classList の.add() と .remove() 、そして contains() をうまく使えば解決する。

// HTML
<p class="togglclassBtn">click me!</p>
<p class="change_color">HELLO!</p>
// SCSS
.togglclassBtn {
  display:inline-block;
  padding: 10px 20px;
  border-radius: 10px;
  box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
  background-color: #EF5350;
  color: #FFFFFF
}
.change_color {
  display:inline-block;
  padding: 10px 20px;
  border-radius: 10px;
  box-shadow: rgba(0, 0, 0, 0.35) 0px 5px 15px;
  background-color: #FFFFFF;
  &.js-active {
    background-color: #1976D2;
    color: #ffffff;
  }
}
// JavaScript
const btn = document.querySelector('.togglclassBtn');
const target = document.querySelector('.change_color');

btn.addEventListener('click', function() {
  if(target.classList.contains('js-active')) {
    target.classList.remove('js-active')
  } else {
    target.classList.add('js-active')
  }
})

See the Pen toggleClass by IE by PROGBLOG (@progblog-sank) on CodePen.


IE で動作確認は上記をダウンロードする。