обратный вызов jQuery после fadeOut не срабатывает - PullRequest
0 голосов
/ 03 марта 2011

Я все еще очень много изучаю jQuery / javascript, поэтому любые указания и улучшения очень ценятся.

Я хочу скрыть div в функции обратного вызова события fadeOut, однако это не работает. Что-то не так с тем, как я пишу это?

function hide() {
    var box = $(this);
    box.children("div").children().fadeOut(500, function() {
        $(this).parent().hide("slow", "easeOutBounce");
    });
};

Я использую Easing и HoverIntent jquery плагинов.

Пример моей проблемы

Ответы [ 3 ]

4 голосов
/ 03 марта 2011

Обратный вызов срабатывает, проблема в том, что <div> со ссылками скрывается, а затем вы вызываете slideUp(). Но в тот момент, когда <div> скрыт, содержащийся div имеет высоту, как если бы он уже закончил скольжение - так что вы вызываете его скольжением вверх.

Обходной путь - почти fadeOut() ссылки, затем скольжение (так как они не полностью исчезают, у них все еще есть высота), а затем полностью их скрыть.

Рабочий пример:

http://jsfiddle.net/scFMx/13/

1 голос
/ 03 марта 2011

Похоже, что он стреляет

box.children("div").children().fadeOut(500, function() {
    console.log($(this).parent().clone());
    $(this).parent().hide();
    console.log($(this).parent());
});

Первый вызов в журнал:

<div class="hidden" style="display:block; ">…</div>

Второй вызов в журнал:

<div class="hidden" style="display:none; ">…</div>
0 голосов
/ 03 марта 2011

Попробуйте заменить все "это" указанными идентификаторами.

...