在Drupal站点中的jQuery addClass()函数在IE7中不起作用

时间:2011-10-03 22:47:26

标签: jquery drupal internet-explorer-7 drupal-7 addclass

我正在尝试在Drupal站点的上下文中使用jQuery。该脚本在包括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>

图例地图的相应区域被点击时图例会更新,但叠加图不会。

我在IE7中遇到过很多关于addClass()的问题,但没有一个问题看起来完全相同,也没有提出解决方案。

2 个答案:

答案 0 :(得分:0)

jQuery('#map-overlay').attr('class','').addClass('education');//instead of this

使用

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

removeClass()从元素中删除所有类。

答案 1 :(得分:0)

我从未见过addClass()在IE7中不起作用。你确定两者之间有问题吗?

你可以使用addClass()而无需链接,看看它是否有效?如果这不起作用,你可以做类似.hide()的事情,看它是否隐藏你的元素?我正在尝试确定jQuery('#map-overlay')是否实际上是在运行此代码时抓取您的元素。

通常,如果没有示例,我们甚至无法验证这是addClass()和IE7的问题。如果上面没有帮助你调试,你能提供一个jsfiddle链接,我会在IE7上测试吗?