将鼠标悬停在alink上并为div设置动画

时间:2011-05-13 13:55:38

标签: jquery

嗨,我已经停下来试图获得我需要工作的东西。

基于:

$(".test a").hover(function(){
        $(this).toggle({ height: "200px" });
    }, function() {
        var currentTab = $(this).attr('href');
        $(this).stop(true, false).animate({ height: "100px" });
    });
});

<div class="test">
  <a href="#one">1</a>
  <a href="#two">2</a>
  <a href="#three">3</a>
</div>

我需要它来动画一个div而不是自我动画,我想出了下面的动画,然后将动画放下来,但不会备份等等:

$(".test a").hover(function(){
        var activeTab = $(this).attr("href"); 

        $(activeTab).toggle({ height: "200px" });   }, function() {
        $(activeTab).stop(true, false).animate({ height: "100px" });    }); });

<div class="test">
<a href="#one">1</a>
<a href="#two">2</a>
<a href="#three">3</a>

<div id="one" class="tab one">1</div>
<div id="two" class="tab two">2</div>
<div id="three" class="tab three">3</div> </div>

2 个答案:

答案 0 :(得分:0)

您需要重新声明变量activeTab,因为它只存在于mouseenter的范围内,而不是mouseout

$(".test a").hover(function(){      
          var activeTab = $(this).attr("href"); 
          $(activeTab).toggle({ height: "200px" });   
     }, 
     function() {
          var activeTab = $(this).attr("href"); 
          $(activeTab).stop(true, false).animate({ height: "100px" });   
     }); 
});

答案 1 :(得分:0)

$(".test a").hover(function(){      var activeTab = $(this).attr("href"); 

        $(activeTab).toggle({ height: "200px" });   }, function() {
        $(activeTab).stop(true, false).animate({ height: "100px" });    }); });

这里有一些错误......一个是,算你的括号......

$(".test a").hover(function(){
    var activeTab = $(this).attr("href"); 
    $(activeTab).toggle({ height: "200px" });
},
function() {
    $(activeTab).stop(true, false).animate({ height: "100px" });
});
}); // too many closing brackets

第二个是var activeTab超出第二个功能的范围。因此,您需要在第二个函数中重新定义var activeTab

这应该有效:

$(".test a").hover(function(){
    var activeTab = $(this).attr("href"); 
    $(activeTab).toggle({ height: "200px" });
},
function() {
    var activeTab = $(this).attr("href"); 
    $(activeTab).stop(true, false).animate({ height: "100px" });
});