JQuery fadeto анимация с проблемой обратного вызова - PullRequest
0 голосов
/ 29 октября 2010

Вот мой код:

function hideColumnAndShowOther(columnToHide, columnToShow) {
$(columnToHide).fadeTo("slow", 0.0, function() {
                       $(columnToShow).fadeIn("slow");
                       });
}

В этом случае функция обратного вызова не вызывается. Я использовал инструмент firebug, чтобы получить корень проблемы. В функции обратного вызова переменная columnToShow отсутствует. Я думаю, что это логично, потому что это отдельный блок, но как я могу решить это тогда? У вас есть совет?

Спасибо!

1 Ответ

1 голос
/ 29 октября 2010

Проблема в том, что переменная columnToShow находится вне области видимости. Это ничего не значит в этот момент. Вместо этого попробуйте $ (this) .fadeIn ("slow").

$ (this) относится к элементу, который вы только что исчезли, так как к этому элементу присоединена функция обратного вызова.

РЕДАКТИРОВАТЬ: (неправильно прочитал вопрос)

Если вы измените что-то вроде следующего, оно должно работать.

function hideColumnAndShowOther(columnToHide, columnToShow) {
    var showColumn = columnToShow;
    $(columnToHide).fadeTo("slow", 0.0,
        function() {
           $(showColumn).fadeIn("slow");
        });
}
...