2010-07-05 112 views
2

我有问题选择div我想要在jQuery中动画。我有这个HTMLjquery选择器

<div id="perimg"> 
<a class="false" href="show_model.php?param=Addison"> 
<div id="name_container"><img id="slide" src="../../pictures/picture.jpg"><div id="name">Picture name</div></div> 
</a> 
</div> 

我使用该标记,因为我想滑动悬停上的图片的#名称。我有每行3行和8行,我的jQuery只针对第一个图像。

$('#slide').hover(function(){ 
$(this).parent().find('#name').animate({"bottom" : 0}, 800) 
}, function(){ 
$(this).parent().find('#name').animate({"bottom" : "-20px"}, 800) 
}); 

我甚至试过去$('#perimg')。children(),但这也没有帮助。

+0

ID必须在文档中是唯一的。如果你有多个具有相同ID的元素,那么这可能不起作用。 – Gumbo 2010-07-05 07:17:43

+0

嗯,我明白了。让我再试一次 – andrei 2010-07-05 07:18:40

回答

3

由于有多个图像和div您想要动画,使用类而不是id。另外你的代码是错误的,试试这个:

HTML:

<div id="perimg"> 
<a class="false" href="show_model.php?param=Addison"> 
<div id="name_container"><img class="slide" src="../../pictures/picture.jpg"><div class="name">Picture name</div></div> 
</a> 
</div> 

的jQuery:

$('.slide').hover(function(){ 
    $(this).find('.name').animate({"bottom" : 0}, 800) 
    }, function(){ 
    $(this).find('.name').animate({"bottom" : "-20px"}, 800) 
}); 
+0

我知道id的确是独一无二的,我不知道为什么我犯了这个错误。它现在有用,谢谢,请记住。 – andrei 2010-07-05 07:22:50

1

jQuery只会在按ID进行检查时选择第一个匹配元素,但在检查类时它将选择全部。你会发生什么,因为你正在寻找一个特定的ID,它只会得到第一个图像。只要改变它使用类,它应该工作。