Задать вопрос

Почему не удаляются классы css в методом className в ie 9-11?

Есть такая функция:
function toggleClass(elem,cls,flag){
        
      var cls1=elem.className;
      
      cls1=cls1.split(' ');
      
      var i=cls1.indexOf(cls);
      
      if ( (i >= 0 && flag > 0) || (i <0 && flag < 0)){
          return;
      }
           
      if(flag < 0){
          cls1.splice(i,1);
      }
      
      if(flag >= 0){
          cls1.push(cls);
      }
      
      cls1=cls1.join(' ');

      elem.className=cls1;
  }


результат ее многократного вызова в ie получается такой:
f35b95fd2e0b496eb40b060df1746ecd.jpg

в остальных браузерах все OK.
Заранее благодарен за помощь)
  • Вопрос задан
  • 189 просмотров
Подписаться 1 Оценить 6 комментариев
Решения вопроса 1
bubandos
@bubandos
bash'у, javascript'ую, php'лю, css'аю, html'каю
Вот вам описание метода javascript.ru/Array/splice
Вот вам строка с ошибкой: cls1.splice(i,1);
Вот вам подсказка: индексы в массиве начинаются с нуля.

Потому и не удаляет.ж
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы