【问题标题】:Trying to change img src via switch尝试通过开关更改 img src
【发布时间】:2017-08-19 10:33:31
【问题描述】:

我的页面上有三张图片,如果点击它们,我想在经典叠加中显示它们。我在更改叠加层中的图像来源时遇到了问题。

我首先将图像索引存储在变量中,并尝试通过正在检查图像索引的 swich 更改源。

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

谢谢。

$("#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();

});
});

【问题讨论】:

  • 检查我的答案。它应该适合你。

标签: jquery image switch-statement overlay src


【解决方案1】:

您的 switch case 必须具有整数值,因为它们引用图像的索引值,并且索引是整数类型,因此请更改

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");
}

【讨论】:

  • 但是OP想要从元素的数组中获取元素的索引。
  • 第一次用正确的英文发表评论。你不清楚你的意思。
  • $("#imageholder img").indexOf(this); 这个语法不正确。你正在将 jquery 对象与 js fiddle.jshell.net/gcoq0d8r/1 结合起来
猜你喜欢
  • 2019-02-25
  • 1970-01-01
  • 2011-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-23
  • 1970-01-01
  • 2018-09-15
相关资源
最近更新 更多