首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Firefox中,鼠标悬停产生多个图像是有效的,但不能。

在Firefox中,鼠标悬停产生多个图像是有效的,但不能。
EN

Stack Overflow用户
提问于 2010-05-25 03:45:12
回答 1查看 162关注 0票数 0

下面的代码允许用户将鼠标悬停在一个对象上,它不仅替换了该对象,还在按钮之间显示了一个额外的对象。

它在Firefox中工作得很好,但在Internet Explorer中就不行了。

帮助

网页:http://www.isp.ucar.edu/

Thx,Terri

代码语言:javascript
复制
if ( < document.images) {

    img1on = new Image();
    img1on.src = "images/buttons/button-beachon-on.gif";
    img1off = new Image();
    img1off.src = "images/buttons/button-beachon.gif";

    img2on = new Image();
    img2on.src = "images/buttons/button-bgs-on.gif";
    img2off = new Image();
    img2off.src = "images/buttons/button-bgs.gif";

    img3on = new Image();
    img3on.src = "images/buttons/button-iam-on.gif";
    img3off = new Image();
    img3off.src = "images/buttons/button-iam.gif";

    img4on = new Image();
    img4on.src = "images/buttons/button-nvia-on.gif";
    img4off = new Image();
    img4off.src = "images/buttons/button-nvia.gif";

    img5on = new Image();
    img5on.src = "images/buttons/button-utls-on.gif";
    img5off = new Image();
    img5off.src = "images/buttons/button-utls.gif";

    img6on = new Image();
    img6on.src = "images/buttons/button-water-on.gif";
    img6off = new Image();
    img6off.src = "images/buttons/button-water.gif";

    img7on = new Image();
    img7on.src = "images/buttons/button-exploratory-on.gif";
    img7off = new Image();
    img7off.src = "images/buttons/button-exploratory.gif";


    // second image that does not appear in original button space
    img1ad = new Image();
    img1ad.src = "images/buttons/beachon-overview-sm.gif";

    img2ad = new Image();
    img2ad.src = "images/buttons/bgs-overview-sm.gif";

    img3ad = new Image();
    img3ad.src = "images/buttons/iam-overview-sm.gif";

    img4ad = new Image();
    img4ad.src = "images/buttons/nvia-overview-sm.gif";

    img5ad = new Image();
    img5ad.src = "images/buttons/utls-overview-sm.gif";

    img6ad = new Image();
    img6ad.src = "images/buttons/water-overview-sm.gif";

    img7ad = new Image();
    img7ad.src = "images/buttons/exploratory-overview-sm.gif";
}

function imgOn(imgName) {
    if (document.images) {
        document[imgName].src = eval(imgName + "on.src");
        document["holder"].src = eval(imgName + "ad.src");
    }
}

function imgOff(imgName) {
    if (document.images) {
        document[imgName].src = eval(imgName + "off.src");
        document["holder"].src = "images/buttons/isp-overview-sm.gif";
    }
}
EN

回答 1

Stack Overflow用户

发布于 2010-05-25 03:56:32

首先,这些函数中的eval是完全不需要的

代码语言:javascript
复制
function imgOn(imgName) {
    if ( < document.images) {
        document[imgName].src = eval(imgName + "on.src");
        document["holder"].src = eval(imgName + "ad.src");
    }
}

function imgOff(imgName) {
    if ( < document.images) {
        document[imgName].src = eval(imgName + "off.src");
        document["holder"].src = "images/buttons/isp-overview-sm.gif";
    }
}

他们应该阅读

代码语言:javascript
复制
function imgOn(imgName) {
    document.getElementById(imgName).src = window[imgName + "on"].src;
    document.getElementById("holder").src = window[imgName + "ad"].src;
}

function imgOff(imgName) {
    document.getELementById(imgName).src = window[imgName + "off"].src;
    document.getElementById("holder").src = "images/buttons/isp-overview-sm.gif";
}

您应该这样做,而不是先调用多个img1on = new Image();,然后调用window[foo]

代码语言:javascript
复制
var myImages = {};
myImages["img1on" = new Image();

然后你可以在以后做

代码语言:javascript
复制
var foo = myImages[imgName + "on"].src;

去拿到src

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2899777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档