0

我一直致力于做一些简单的事情..但不确定最好的方法。我已经准备好通过 jQuery 文档,但由于这个地方提供了合理的建议 - 我将在这里提出问题。

基本上是穿越。

假设我有这个最小的代码作为一个简单的例子(同一页面上有多个元素):

<div class='collab'>
<div class='collab_text'>text</div><!--close collab_text-->
</div><!--close_collab-->

<div class='collab'>
<div class='collab_text'>text</div><!--close collab_text-->
</div><!--close_collab-->

在 jQuery 中,我只想collab_text在悬停时淡出。所以我有:

$(".collab").hover(function(){
        $(".collab_text").fadeTo(700, 1.0);
    },function(){
        $(".collab_text").fadeTo(300,0.00001);                          
    });

collab_text当我将鼠标悬停在 1 个项目上时,这显然会显示所有元素的所有内容。所以我的问题是什么是只让悬停collab_text显示的正确方法。 .next()?, .find()?

我知道我的代码应该是:

$(".collab").hover(function(){
            $(this).XXX(".collab_text").fadeTo(700, 1.0);
        },function(){
            $(this).XXX(".collab_text").fadeTo(300,0.00001);                            
        });

任何信息将不胜感激。

谢谢。

4

2 回答 2

2

您可以使用任何一个find,或$()与上下文一起使用

$(this).find(".collab_text").fadeTo(700, 1.0);

或者

$('.collab_text', this).fadeTo(700, 1.0);

他们都是平等的:

在内部,选择器上下文是用 .find() 方法实现的,所以 $('span', this) 等价于 $(this).find('span')。

http://api.jquery.com/jQuery/

于 2012-04-18T09:58:40.850 回答
0

在你的情况下,我会使用children('.collab_text')

$(".collab").hover(function(){
    $(this).children(".collab_text").fadeTo(700, 1.0);
},function(){
    $(this).children(".collab_text").fadeTo(300,0.00001);                          
});​

示例 - http://jsfiddle.net/edjQ7/

于 2012-04-18T10:00:52.730 回答