#jquery #internet-explorer-8
#jquery #internet-explorer-8
Вопрос:
Код, который вызывает у меня головную боль, таков:
$('#timeline .selected').removeClass('selected');
Он просто не будет вести себя должным образом в IE8. Классы удаляются правильно, но каким-то образом элемент по-прежнему имеет тот же стиль, что и стиль с классом ‘selected’ .
P.S. Эти двое тоже не сработают:
$('#timeline .selected').removeAttr('class');
$('#timeline .selected').removeAttribute('class');
Пожалуйста, помогите!
Комментарии:
1. Проверьте, наследует ли ваш элемент аналогичные стили от другого селектора.
2. Нет, в инспекторе он показывает правильные стили, но он не отображается таким образом. Это простая фоновая позиция, и она имеет правильные координаты в инспекторе, но не в окне просмотра.
3. что, если вы добавите другой класс, который стилизует элемент так, как вы хотите?
4. Возможно, было бы неплохо смоделировать проблему в jsfiddle, чтобы мы могли взглянуть на странное поведение.
5. Что ж, супер простой пример в JSFiddle работает… jsfiddle.net/P2zmm — Может быть, мне стоит попробовать реализовать весь модуль в jsfiddle?
Ответ №1:
Обновлено: http://jsfiddle.net/jWvdr/2 /
$('li').hover( function() {
$(this).addClass('active');
}, function() {
$(this).removeClass('active');
});
Кажется, работает нормально:
$('li.active').click( function() {
$(this).removeClass('active');
});
Какие атрибуты css вызывают у вас проблемы?
Комментарии:
1. Ну, это строка CSS, которая должна управлять состоянием наведения и «активным» классом (черт возьми, не могу отформатировать его как код): #timeline-внутренний раздел article .certificate:hover:before, #timeline-внутренний раздел article.selected .certificate:before { фон-позиция: -232px -59px; }
2. Это просто атрибут, который я меняю, когда элемент имеет «активный» класс: background-position: -232px -59px;
3. Вы используете css-селектор, который не полностью поддерживается IE8. Для :before и content для работы в IE8 должен быть объявлен <!DOCTYPE> . Вам, вероятно, следует пересмотреть свое решение делать это без рискованных селекторов 🙂
4. Посмотрите, не работает ли это для вас в IE8 jsfiddle.net/xyv8x/1 — для меня имеет.. Так что, вероятно, это ваш CSS 🙂
5. Проблема была в элементе :before . IE8 не учитывает изменения в :before, если класс добавляется к основному элементу. Спасибо вам всем!