2

我有一个非常有趣的问题。我正在编写一个允许您放大/缩小图像的插件。我有 3 个按钮:关闭(关闭“窗口”)、放大、缩小。放大/缩小按钮也有禁用版本。当您达到最小/最大缩放量时,它会被激活。

如果您打开图片进行缩放,您可以看到一个活动的缩小按钮和一个禁用的放大按钮(因为我在打开时设置了最大值)。当您第一次单击缩小按钮时,放大按钮应该摆脱禁用类。它在 Safari、Chrome、Firefox 3.6/4/5、IE8 中运行良好,但在 IE7 中运行良好。

放大按钮有一个 ID 和类,我想强制 IE7 从元素中删除特定的类。首先,我使用了 removeClass(),但它不起作用。然后我使用 setAttribute(),它适用于除 IE7 之外的所有浏览器。

这是示例。因此,当您打开图像进行缩放时,缩小按钮具有 ID="zoom-button-in" 和 5 个类:zoom-icon、zoom-icon-small、zoom-button-in、zoom-button-disabled、缩放按钮禁用。我想删除 2 个“禁用”类。所以我用这个:

var elementZoomButtonIn = document.getElementById("zoom-button-in");
elementZoomButtonIn.setAttribute("class", "zoom-icon zoom-icon-small zoom-button-in");

在插入非禁用类之前,我尝试将类设置为空,但没有奏效。

这种方法在 IE7 中有效吗?(-:

谢谢你们!

4

1 回答 1

6

setAttribute()并且getAttribute()通常在 IE 7 及更早版本(以及更高版本的兼容模式)中被破坏。改用元素的className属性:

elementZoomButtonIn.className = "zoom-icon zoom-icon-small zoom-button-in";

即使在 IE 中setAttribute()getAttribute()没有被破坏,使用等效的 DOM 属性通常仍然更容易和更可靠。

于 2011-06-24T08:48:36.600 回答