首页 新闻 会员 周边 捐助

关于javascript的鼠标事件(初学者)

0
[已解决问题] 解决于 2012-11-30 22:46
function setupRollover(thisImage) {
        thisImage.outImage = new Image();
        thisImage.outImage.src = thisImage.src;
        thisImage.onmouseout = function() {
                this.src =thisImage.outImage .src;
        }

        thisImage.clickImage = new Image();
        thisImage.clickImage.src = "images/" + thisImage.id + "_click.gif";
        thisImage.onclick = function() {
                this.src = thisImage.clickImage.src;
        }
 
        thisImage.overImage = new Image();
        thisImage.overImage.src = "images/" + thisImage.id + "_on.gif";
        thisImage.onmouseover = function() {
                this.src = thisImage.overImage.src;
        }
}

 

最近在学习javascript,在书上看到了这样的一串代码,意思是鼠标在图片上,点击图片,不在图片上的效果,我不明的是为什么要定义outImage,clickImage,overImage,所以我改了一下代码

function setupRollover(thisImage) {
        temp = new Image();
        temp.src = thisImage.src;
        thisImage.onmouseout = function() {
                this.src = temp.src;
        }

        
        temp.src = "images/" + thisImage.id + "_click.gif";
        thisImage.onclick = function() {
                this.src = temp.src;
        }

        temp.src = "images/" + thisImage.id + "_on.gif";
        thisImage.onmouseover = function() {
                this.src = temp.src;
        }
}

发现不行,我不明白是为什么,请高人指点!

wen858636827的主页 wen858636827 | 菜鸟二级 | 园豆:208
提问于:2012-11-30 10:57
< >
分享
最佳答案
0

这是本人的理解:在页面加载完成后这段代码初始化了一次,temp.src = "images/" + thisImage.id + "_on.gif";初始化完成之后,temp.src的值就是这个。所以,不管把鼠标放到图片上、离开图片、点击图片this.src的值都等于temp.src,也就是"images/" + thisImage.id + "_on.gif"。这是我改过的代码:

function setupRollover(thisImage) {
    temp = new Image();
    thisImage.onmouseout = function() {
        temp.src = "images/" + thisImage.id + "_off.gif";
        this.src = temp.src;
    }

    thisImage.onclick = function() {
        temp.src = "images/" + thisImage.id + "_click.gif";
        this.src = temp.src;
    }

    thisImage.onmouseover = function() {
        temp.src = "images/" + thisImage.id + "_on.gif";
        this.src = temp.src;
    }
}
wen858636827 | 菜鸟二级 |园豆:208 | 2012-11-30 22:46
其他回答(2)
0

你的代码运行下来的,你的

temp变量的src指向的肯定是
"images/" + thisImage.id + "_on.gif"; 

那你点击,鼠标移上,移出,都是这个图片,有什么效果呢?
chenping2008 | 园豆:9836 (大侠五级) | 2012-11-30 11:02

你好,效果确实跟你说的一样。

thisImage.onmouseout = function() {
                this.src =thisImage.outImage .src;
        }

这里面的赋值是什么意思,我以为跟C语言一样,还有那个this是什么意思。

支持(0) 反对(0) wen858636827 | 园豆:208 (菜鸟二级) | 2012-11-30 11:11

@wen858636827: this表示当前对象。

支持(0) 反对(0) 拾梦小侠ด้้้ | 园豆:713 (小虾三级) | 2012-11-30 13:12
0

为什么一直是:"images/" + thisImage.id + "_on.gif";

     thisImage.clickImage.src = "images/" + thisImage.id + "_click.gif";
这里不是click.gif吗?

Vincent.Pei | 园豆:156 (初学一级) | 2012-11-30 19:32

兄弟,经过我一晚上的冥思苦想终于知道是为什么了。

支持(0) 反对(0) wen858636827 | 园豆:208 (菜鸟二级) | 2012-11-30 22:39

@wen858636827: 你知道了说一下子啊,兄弟。你想让我也苦思冥想一晚上啊?

支持(0) 反对(0) Vincent.Pei | 园豆:156 (初学一级) | 2012-12-01 23:19
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册