2014-01-17 61 views
-2

这是一些基本的jQuery,但它不起作用。我有数据库中每个视频的描述。非常简单,当你将鼠标悬停在信息按钮上时,每个视频的描述都会淡入。它不工作?为什么?我的jQuery代码有什么问题?

<script> 
    $(document).ready(function(){ 
     $('.infoBtn').mouseenter(function(){ 
      $('.relatedVideoDescription', this).fadeIn(); 
     }); 
    }); 
    </script> 

HTML

<div class="relatedvideo" style=" line-height: 138%;"> 
        <div style="float: left; width: 38%;"> 
         <img src="'.URL.'images/uploads/'.$img_url2.'" width="190px" /> 
        </div><div class="relatedText"> 
         <strong style="font-size: 12px;">'.$title2.'</strong><br /> 
         <p class="relatedVideoDescription">'.$desc2.'</p> 
         <p class="infoBtn">info</p> 
        </div> 
        <br /><br /><br /> 
       <hr /> 
       </div> 

的.relatedVideoDescription被设置为显示:无;在CSS中。

+0

能否请您也表明你的HTML? jut a guess $(this).children('。relatedVideoDescription')。fadeIn(); – caramba

+1

假设'relatedVideoDescription'是'infoBtn'的一部分,你试过'$(this).find('。relatedVideoDescription')。fadeIn();'? – MassivePenguin

+0

当然在调用fadeIn()之前隐藏元素 –

回答

2

http://jsfiddle.net/7prVd/1/

$(document).ready(function(){ 
     $('.infoBtn').mouseenter(function(){ 
      $(this).closest('.relatedvideo').find('.relatedVideoDescription').fadeIn(); 
     }); 
}); 

UPDATE

或使用.siblings()安东说

http://jsfiddle.net/7prVd/2/

$(document).ready(function(){ 
     $('.infoBtn').mouseenter(function(){ 
      $(this).siblings('.relatedVideoDescription').fadeIn(); 
     }); 
    }); 
+0

这很好。我做错了什么? –

+1

@AndrewJohn你正在选择一个副本,这就是为什么它不起作用。你正在寻找的元素就在infoBtn – Anton

+0

@AndrewJohn的旁边,你以我从未做过的方式使用过这个:-)在上面的mouseenter函数中,$(this)是$('。infoBtn')。很多时候,如果我只是尝试和错误,我会strart一个函数,然后在函数内写$(this).addClass('xx');只是为了看看我在哪里。 – caramba