Как обычно, я разработал его в Firefox. Обычно это работает без изменений в Chrome / Safari, а также IE8.
Но когда я тестировал на Chrome и Safari, я был удивлен, увидев, что он не работает.
Мой CSS действителен (проверено на w3c). JavaScript (использующий jQuery), кажется, также действителен.
Уязвимые элементы не перерисовываются после изменения значения атрибута с помощью jQuery, поэтому правила CSS для нового значения атрибута не применяются, пока я не захожу в инспектор Chrome и не отменяю / не выбираю их вручную ...
Обновление: у меня больше нет рабочей ссылки для этой проблемы.
Проблема заключалась в том, что Webkit не «перерисовывал» при изменении атрибутов, а только при изменении классов, поэтому блоки CSS с селекторами, такими как div[attr=value]
, не будут применяться, когда атрибут attr
был изменен на value
через JavaScript.
Один из способов - использовать классы вместо атрибутов (.className
) в селекторах. Выполнение изменения класса после изменения атрибута также может вызвать перерисовку, что также решит проблему.
Этому сообщению более 5 лет, я думаю, что проблема была исправлена в Chrome.