使用jquery更改悬停div上的不透明度

时间:2012-08-20 10:08:48

标签: jquery hover opacity

我有动态评论列表:

<div class="comment">
  <div class="commentact">
    Test1
  </div>
</div>
<div class="comment">
  <div class="commentact">
    Test2
  </div>
</div>
<div class="comment">
  <div class="commentact">
    Test3
  </div>
</div>​

现在,当用户将div class='comment'显示div class='commentact'opacity 0时,我需要暂停。

我有这个jquery函数:(我将div commentact默认设置为opacity 0.2)

$(".commentact").css('opacity','0.2');

$(document).ready(function(){

   $(".comment").hover(function() {
      $(".commentact").stop().animate({ opacity: 1 });
   }, function() {
      $(".commentact").stop().animate({ opacity: 0.2 }); 
   });

});​

现在当我悬停comment div显示所有commentact div的不透明度为0时,出现了什么问题!怎么解决这个问题? Demo

2 个答案:

答案 0 :(得分:11)

jsFiddle demo

.commentact元素,因此请使用:$(this).find(".commentact")
$(".commentact", this)

$(function(){ // DOM ready

    $(".commentact").fadeTo(0, 0.2); // initial opacity

    $(".comment").hover(function( e ) {
       $(".commentact", this).stop().fadeTo(300, e.type=="mouseenter"? 1 : 0.2 );
    });

});

答案 1 :(得分:3)

而不是$(".commentact")使用$(this).find(".commentact")

$(".commentact").css('opacity','0.2');
$(document).ready(function(){
  $(".comment").hover(
    function() {
      $(this).find(".commentact").stop().animate({ opacity: 1 });
    },
    function() {
      $(this).find(".commentact").stop().animate({ opacity: 0.2 }); 
    });
});​

演示:http://jsfiddle.net/ZLX3L/2/