在我的画廊中,Div通过循环生成。在那里,我想为peticular(单人)Div留下悬停效果。在我的代码中,当我将托盘div效果悬停在整个div上时。
mycode的
.spanstyle{opacity:1;}
while (loop){
<div class="waz">
<span class="spanstyle"></span>
</div>
}
$(".waz .spanstyle").each(function(i, val) {
$(this).mouseenter(function() {
$(this).stop().animate({ opacity: 1 }, 300);
})
$(this).mouseleave(function() {
$(this).stop().animate({ opacity: .3 }, 100);
})
});
有关详细信息,您可以查看项目: Project
答案 0 :(得分:2)
试试这个并检查fiddle可能对您有所帮助
$(".waz").each(function(i, val) {
$(this).mouseenter(function() {
$('.spanstyle',this).show();
})
$(this).mouseleave(function() {
$('.spanstyle',this).hide();
})
});
答案 1 :(得分:1)
那是因为你给所有的div都给了相同的Id。尝试给他们不同的Id
var i=0;
while (loop){
<div id="'waz' + i"></div>
i++;
}
您的$("#waz .spanstyle").each( ...
将成为
$("div[id='^waz'] .spanstyle").each(...
答案 2 :(得分:1)
您有多个具有相同ID的元素。我会建议这样的事情:
while (loop){
<div onmouseover="a" onmouseout="b"></div>
}
function a(){
$(this).find('.spanstyle').stop().animate({ opacity: 1 }, 300);
}
function b(){
$(this).find('.spanstyle').stop().animate({ opacity: .3 }, 100);
}
编辑:
或者您可以对代码进行一些小改动:
$(".waz").each(function(i, val) {
$(this).mouseenter(function() {
$(this).children('.spanstyle').stop().animate({ opacity: 1 }, 300);
})
$(this).mouseleave(function() {
$(this).children('.spanstyle').stop().animate({ opacity: .3 }, 100);
})
});
答案 3 :(得分:1)
您的html页面似乎存在一些冲突。 WAZ 是某些div的类名,有些是ID(ID在文档中应该是唯一的)。我认为悬停效果来自以下代码(在您的页面中可用):
$(".waz").hover(function(){
$(".spanstyle").slideToggle();
});
不是您在问题部分发布的代码。请看看那些东西。