我想要做的事情很简单,但作为初学者,我对此感到非常沮丧。
这是我的first attempt just to give you the idea。
我打算用图片做一些更有趣的事情,但我可以直接看到这不是解决方案。 Mouseover正在改变图像,然后它逐渐消失,看起来很糟糕。
所以,我想我可能会将所有图像放在同一个地方并将它们隐藏起来,使它们可见并在鼠标悬停在相应的热点上时将它们带到前面。我希望有一种方法可以用.css()减少元素的z-index值。
这就是我的用武之地(同一网址,9872_gangsters_moll_2nd_attempt.html)。
$(".hotspot").mouseover(function(){
//Get the id of this triggered item
var imageid = $(this).attr("id");
//use it to make corresponding image id to use as jQuery selector
var currentImg = '#img_'+ imageid;
// alert(currentImg); //shows variable is correct
// $('.product-img').show(); //works fine with a class
$('currentImg').show(); //doesn't work with a variable
$('currentImg').addClass('front'); //same, obviously
});
我最初尝试用css切换可见性,但是使用了jQuery的show / hide。都没有奏效。问题似乎是将'currentImg'作为选择器传递。
您可以提供的任何帮助都将非常感激。
谢谢,
安迪
答案 0 :(得分:5)
只需删除引号,使其使用文字字符串(而不是变量)。 $('currentImg')
应该只是$(currentImg)
,就像这样:
$(".hotspot").mouseover(function(){
var currentImg = '#img_'+this.id;
$(currentImg).show().addClass('front')
});
上面的其他更改...... .id
之类的内容是DOM属性,您可以直接访问它们(而不是效率较低的.attr("id")
)。
答案 1 :(得分:1)
$('currentImg').show();
正在使用字符串文字,而不是变量。摆脱引号。
答案 2 :(得分:0)
当您在单引号或双引号中包含一组字母时,它将成为字符串文字。 当你说$('currentImg')时,它会搜索一个名为'currentImg'的html标签。你需要的是@Nick和@David提到的$(currentImg)