Наведите указатель мыши на ссылку и анимируйте div

#jquery

#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>
  

Ответ №1:

Вам нужно повторно объявить переменную 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" });   
     }); 
});
  

Ответ №2:

 $(".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" });
});