Функция jQuery addClass () на сайте Drupal не работает в IE7 - PullRequest
2 голосов
/ 04 октября 2011

Я пытаюсь использовать 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, но ни одна из проблем не казалась совершенно одинаковой, а решения - не совсем подходящими.

Ответы [ 2 ]

0 голосов
/ 05 октября 2011

Я никогда не видел, чтобы addClass () не работал в IE7.Вы уверены, что есть проблема между ними?

Можете ли вы использовать addClass () без цепочки и посмотреть, работает ли он?Если это не работает, можете ли вы сделать что-то вроде .hide (), чтобы увидеть, скрывает ли он ваш элемент?Я пытаюсь определить, действительно ли jQuery ('# map-overlay') захватывает ваш элемент во время выполнения этого кода, или нет.

Как правило, без примера мы не можем дажеубедитесь, что это проблема с addClass () и IE7.Если вышеприведенное не поможет вам в отладке, можете ли вы предоставить ссылку на jsfiddle, и я протестирую ее на IE7?

0 голосов
/ 04 октября 2011
jQuery('#map-overlay').attr('class','').addClass('education');//instead of this

использование

jQuery('#map-overlay').removeClass().addClass('education');

removeClass () удаляет все классы из элемента.

...