2010-01-31 67 views
-1

这里是我的地盘:http://iaddesign.com/beta/portfolio.php如何在鼠标悬停改变图像,并留下

我想这:

$("#portfolio li img").hover(

function() { 


$(this).attr("src", function() { 

return "images/" + this.alt + ".png"; 

}), 


$(this).attr("src", function() { 


return "images/" + this.alt + "-over.png"; 

}); 

,但它的作用不是当显示图像(出于某种原因),那么我的鼠标在图像显示,然后当我把我的鼠标关闭nothign发生。我希望所有的

在页面加载时的每个图像SRC将等于什么与.png格式

但concated中高音attribuate当鼠标在图像上的SRC等于

它的中高音attribe +“-over.png”然后当鼠标离开它回到什么alt是+“.png”

回答

1

这样的事情?

$("#portfolio li img").bind('mouseover', function(){ 
    this.src = "images/" + this.alt + "-over.png";  
}); 

$("#portfolio li img").bind('mouseout', function(){ 
    this.src = "images/" + this.alt + ".png"; 
}); 
0

在你悬停的第二个功能,你都忘了做一个函数...

$(this).attr("src", function() { 
    return "images/" + this.alt + "-over.png"; 
}); 

应该

function(){ 
$(this).attr("src", function() { 
    return "images/" + this.alt + "-over.png"; 
}); 
} 

此外,你做不必使用函数来创建新的名称..你可以直接做..

所以

$(this).attr("src", function() { 
    return "images/" + this.alt + "-over.png"; 
}); 

可能只是

$(this).attr("src", "images/" + this.alt + "-over.png"); 
1

该代码可以完成你所想。 hover()需要2个参数,第一个是mouseenter的事件处理程序,第二个是mouseleave的第二个参数。另外,如果你所做的只是构建一个简单的字符串,那么使用attr()的匿名函数并不是完全必要的。

$("#portfolio li img").hover(
    function() { 
     $this = $(this); 
     $this.attr("src", "images/" + $this.attr('alt') + ".png"); 
    }, 
    function() { 
     $this = $(this); 
     $this.attr("src", "images/" + $this.attr('alt') + "-over.png"); 
    } 
); 

此代码应该更好地优化。享受:)