我为图像翻转构建了一个 jQuery 函数,即当我将鼠标悬停在它们应该放大的特定图像上时。但问题是这些图像有两种类型,有时它们带有绿色边框,有时带有红色边框。当它们有红色边框时,图像名称以"RB"结尾。现在问题是不管图像是否包含 RB,它是否被放大了。我使用了一个布尔值作为决策参数,它的名字是"pos"。当我打印它时,会显示正确的值,但在代码逻辑中它都是错误的。
<script type="text/javascript">
var preLoadImages=['../icons/alfresco64.png','../icons/RSS64.jpg',
'../icons/google_calendar64.png','../icons/connections64.png',
'../icons/linkedin64.png','../icons/salesforce64.png',
'../icons/sharepoint_2010_64.png'];
var imgs=[];
for(var i=0;i<preLoadImages.length;i++){
imgs[i]=new Image();
imgs[i].src=preLoadImages[i];
}
$(document).ready(function(){
$('#slider img').mouseover(function(){
var j;
var imgFile=$(this).attr('src');
var imgFileID=$(this).attr('id');
if(imgFileID=="Alfresco"){
j=0;
}
if(imgFileID=="GoogleCalendar"){
j=2;
}
if(imgFileID=="Linkedin"){
j=4;
}
if(imgFileID=="Rss"){
j=1;
}
if(imgFileID=="Salesforce"){
j=5;
}
if(imgFileID=="Sharepoint"){
j=6;
}
if(imgFileID=="Connections"){
j=3;
}
if((j>=0)&&(j<=6)){
var pos=/RB.png$/.test(imgFile);
if(pos){
return false;
} if(!pos){
$(this).hover(
function(){
$(this).attr('src',imgs[j].src);
},
function(){
$(this).attr('src',imgFile);
}
);
}
}
});
});
</script>
据我说,当图像 src 包含 RB 时,该方法应该返回 false。但它总是放大悬停时的图像。请帮助我是 jQuery 的新手。