как запустить дочернюю функцию jquery в начале родительской анимации

0

Я кодирую кнопку с стрелкой CSS, которая переворачивается вверх и вниз при каждом нажатии на контейнер.

Это выглядит отлично, но я не могу понять, как toggleClass функцию toggleClass как только slideToggle.

Стрелка выглядит так, что она немного отстает, потому что она ждет долю секунды до конца анимации slideToggle.

Возможно ли сделать огонь toggleClass в начале анимации, а не в конце?

$("#content_link").click(function(){
    $("#content").slideToggle("fast",function(){

    $("div#arrow_container").toggleClass('arrow_down');         
    $("div#arrow_container").toggleClass('arrow_up');
    });

});

3 ответа

1
Лучший ответ

не уверен, что это то, о чем вы просите, но да вызовите его перед slideToggle() а не внутри его функции обратного вызова

 $("#content_link").click(function(){
   $("div#arrow_container").toggleClass('arrow_down')
                           .toggleClass('arrow_up');
   $("#content").slideToggle("fast");

});
  • 1
    Лучший ответ из-за включения в упрощение .toggleClass и обучения немного больше!
  • 1
    :) ура !!! счастливое кодирование ..;)
1

Удалите этот код из обратного вызова и добавьте его после вызова функции slideToggle, как этот

$("#content_link").click(function(){
    $("#content").slideToggle("fast");
    $("div#arrow_container").toggleClass('arrow_down');         
    $("div#arrow_container").toggleClass('arrow_up');
});
0

Вы также можете установить обратный вызов:

$("header#tag_cat1 div#cat1_content_link").click(function(){
  $("#tag_cat1_content").slideToggle({
    duration: "fast",
    complete: function(){
      $("section.category header > div#cat1_content_link > div").toggleClass('gt_arrow_down_5px');
      $("section.category header > div#cat1_content_link > div").toggleClass('bt_arrow_up_5px');
    },
    start: function() {...}
  });

});

Взгляните на вторую форму .slideToggle()

Ещё вопросы

Сообщество Overcoder
Наверх
Меню