#jquery #drupal #internet-explorer-7 #drupal-7 #addclass
#jquery #drupal #internet-explorer-7 #drupal-7 #addclass
Вопрос:
Я пытаюсь использовать jQuery в контексте сайта Drupal. Скрипт отлично работает в других браузерах, включая IE8, но в IE7 он частично ломается.
Пример кода скрипта:
function showEducation() {
jQuery('#map-overlay').attr('class','').addClass('education');
jQuery('#map-legend-image').attr('src','/sites/all/images/map/legend-education.png');
}
… используется для скрытия наложения на изображение карты, а также для изменения изображения src для легенды карты:
<div id="map">
<img id="map_image" src="[map path]" />
<div id="map-overlay"></div>
<div id="map-legend">
<img src="[legend path]" usemap="#map-legend-imageMap" id="map-legend-image" />
<map name="map-legend-imageMap" id="map-legend-imageMap">
<area shape="rect" coords="12,11,271,66" href="javascript:showEducation()" />
</map>
</div>
</div>
Легенда обновляется при нажатии на соответствующую область карты изображения, но наложение не выполняется.
Я столкнулся с довольно большим количеством проблем с addClass() в IE7, но ни одна из проблем не казалась совершенно одинаковой, а решения не предлагались.
Комментарии:
1. Поменяйте
attr('class', '')
removeClass()
местами.2. Какую версию jQuery вы используете?
3. removeClass() ничего не изменил. Что касается версии jQuery, она выглядит как 1.4.4, версия, которая поставляется с Drupal 7.
Ответ №1:
jQuery('#map-overlay').attr('class','').addClass('education');//instead of this
используйте
jQuery('#map-overlay').removeClass().addClass('education');
removeClass() удаляет все классы из элемента.
Ответ №2:
Я никогда не видел, чтобы addClass() не работал в IE7. Вы уверены, что между ними есть проблема?
Можете ли вы использовать addClass() без цепочки и посмотреть, работает ли она? Если это не сработает, можете ли вы сделать что-то вроде .hide(), чтобы увидеть, скрывает ли он ваш элемент? Я пытаюсь определить, действительно ли jQuery (‘#map-overlay’) захватывает ваш элемент во время выполнения этого кода или нет.
Как правило, без примера мы не можем даже проверить, что это проблема с addClass() и IE7. Если приведенное выше не помогает вам в отладке, можете ли вы предоставить ссылку jsfiddle, и я протестирую ее на IE7?