2009-12-07 103 views
2

我想要做的是,当我在功能,用户将鼠标悬停在.yell键然后.yell盒-TXT就会消失。影响单个元素的jQuery

唯一的问题是,我在网站上更多然后一个按钮,每当我将鼠标悬停在所有文本字段都消失其中之一。

这是我的函数:

$('.yell-button').hover(function(){ 

    $('.yell-box-txt').remove() 

}) 

感谢您的帮助提前

回答

3

不知道你的标记,我怀疑你的.yell-box-txt与你的.yell-button在同一个区块。因此,对于类似这样的标记:

<div> 
    <a class="yell-button">text button</a> 
    <span class="yell-box-txt">text</a> 
</div> 

你想使用这样的事:

$('.yell-button').hover(function() { 
    $(this).closest('div').find('.yell-box-txt').remove(); 
}); 
1

类是根据定义,访问器,潜在的多个元素。如果你想在自己的访问此元素,通过$('#idname')

1
$('.yell-button:first').hover(function(){ 
    $('.yell-box-txt').remove(); 
}) 

当然它会是更好地考虑使用ID和访问它,以确保只使用这个类一次。使用ID应该更好,因为它应该是唯一的(当然,这取决于你,而且你必须检查你的代码是否存在不一致,例如具有相同ID的多个元素)

1

使用id和class

JS

$('.yell-button').hover(function(){ 
    $('#box2.yell-box-txt').remove() 
    }) 

HTML

<div id ="box1" class="yell-box-txt">Text in box 1</div> 
    <div id ="box2" class="yell-box-txt">Text in box 2</div> 
    <div id ="box3" class="yell-box-txt">Text in box 3</div> 
1

正如其他人说,没有您的标记的想法很难帮你,但是这里有一些方法来做到这一点,取决于你的标记:

理想,你将能够分配给每个按钮和关联的文本框中有一个唯一标识符,如yell-button-1,并使其在移动时删除关联的yell-box-txt-1

但是,因为你需要从恢复的按钮ID#这种方法可能是“难”来实现。

做到这一点的第二种方法是使用jQuery的穿越的。寻找到文本框是相对于按钮和使用方法,如parent()siblings(),等。为确保您只收到一个元素,追加:first.yell-box-txt类从按钮到文本框中导航。

更多信息有关jQuery Traversing

希望这会有所帮助!