2017-08-19 150 views
1

我的页面上有三个图像,如果单击它们,我想在经典叠加中显示它们。我在覆盖图中改变图像源时遇到问题。试图通过开关更改img src

我首先将图像索引存储在变量中,并试图通过切换图像索引来改变源码。

但不知何故,它不起作用,我想问你为什么,我做错了什么?

谢谢。

$("#imageholder img").click(function(){ //checking if was clicked on img from #imageholder 
var imageId = $("#imageholder img").index(this); //store imageID of cliced image into variable 
alert(imageId); // alert imageId (debugging) 
var overlayImage = $("#overlay-image"); 
// Adding img elements to overlay div based on imageId 
switch (imageId) { 
    case "0": 
    overlayImage.src='img/1.jpg'; 
    break; 
    case "1": 
    overlayImage.src='img/2.jpg'; 
    break; 
    case "2": 
    overlayImage.src='img/3.jpg'; 
    break; 
    default: 
    alert("No imge was loaded"); 
} 
function on() { 
document.getElementById("overlay").style.display = "block"; 
} 

function off() { 
document.getElementById("overlay").style.display = "none"; 
} 

on(); 

}); 
}); 
+0

检查我的答案一定有整数值。它应该适合你。 –

回答

2

你的开关情况下,它们在引用图像和索引的索引值是整数类型,以便改变

switch (imageId) { 
    case "0": 
    overlayImage.src='img/1.jpg'; 
    break; 
    case "1": 
    overlayImage.src='img/2.jpg'; 
    break; 
    case "2": 
    overlayImage.src='img/3.jpg'; 
    break; 
    default: 
    alert("No imge was loaded"); 
} 

switch (imageId) { 
    case 0: 
    overlayImage.src='img/1.jpg'; 
    break; 
    case 1: 
    overlayImage.src='img/2.jpg'; 
    break; 
    case 2: 
    overlayImage.src='img/3.jpg'; 
    break; 
    default: 
    alert("No imge was loaded"); 
} 
+0

但是OP想要从元素的数组中获取元素的索引。 –

+0

以正确的英文发表第一条评论。你不清楚你的意思。 –

+0

'$(“#imageholder img”)。indexOf(this);'这个语法不是一个正确的。你用'js'连接'jquery'对象https://fiddle.jshell.net/gcoq0d8r/1/ – prasanth