클릭 할 때 헤더 및 단락 태그의 글꼴을 전환해야하는 글꼴 테스트 페이지에서 작업하고 있습니다. 어느 잘 작동하지만 경험은 정말 다음과 같은 경로를 부드럽게하려면 너무 거슬리는된다페이드 아웃이 완료되기 전에 fadeOut() 콜백이 완료됩니다.
페이드 아웃 -> 폰트 스왑을 -
에> 페이드 그러나 코드는 글꼴을 실행 먼저 스왑 한 다음 애니메이션.
다음 코드 단편은 내 문제의 근본 원인이기 때문에 jQuery 만 포함합니다.
// Anytime a card is clicked
$('.card').click(function(){
// Call card by id and switch the fonts
var id = "#" + this.parentElement.id;
$(this).fadeOut(900,swapFont(id));
$(this).fadeIn(500);
// attach the above to some sort of transition callback
});
// Function to swap the font around so that the header is now the body font and the body font is now the header font
function swapFont(id) {
// font-swap logic in here which works fine
}
을 참조하십시오. 나는 문자 그대로 방금 포장 방법을 사용했고, 답변을하고 돌아 왔지만 이미 게시했습니다. 나는 그것이 효과를 얻는다. 그런데 왜 작동합니까? jQuery가 함수를 콜백으로 인식하지 않기 때문입니까? – Callat
함수의 결과를 전달하기 때문입니다. 함수 자체를 전달해야합니다. 그것은 가장 분명한 개념은 아니지만, 당신이 그것을 얻을 때 매우 강력합니다. '함수 포인터'라고 불리는데 사용되었지만 js에서는 '함수 변수'라고 불립니다. –
아 ... 그래서 이름을 호출하면 반환 값을 가리키는 함수를 가리 키지 않습니다. 그래서 콜백에서 함수를 반환하려면 var를, 타입을 반환하려면 유령 함수가 필요합니다.그것은 많은 의미가 있습니다. 고맙습니다. – Callat