jQuery에서 실행 순서와 관련하여 궁금한 점이 있습니다. 아래의 코드는 설계된대로 작동하지만 모든 애니메이션과 오버플로 보호가 제거 된 후에 마지막에 추가되는 closeButton div가 애니메이션 앞에 나타납니다.jQuery 실행 순서 - 애니메이션 전에 추가 정보
이 동작의 원인은 무엇이며 어떻게 처리해야합니까?
$('.infoRight .hoverIcon').click(
function(){
$(this).hide();//hide hover icon. Needed as it would otherwise remain visible until mouse-off
$(this).parent()
.clone(false)//create a copy of the item
.addClass('expandinator')//give appropriate classes to ensure appropriate styling
.addClass('expandinatorright')
.appendTo($(this).parent());//place clone in its parent.
$('.expandinatorright').animate({//change to colour for expanded info
backgroundColor: "#FFFFFF",
color: "#124191"
}, 300 , function() {
$('.expandinatorright').animate({//biggify
width: "510px"
}, 150, function() {
$('.expandinatorright').css('overflow', 'visible', function() {});//remove overflow protection
$('<div class="closeButton"></div>').appendTo('.expandinatorright');//add a close button
});
});
}
);
- : 은 Infact는 당신이, 당신이 현재 무엇을하고 있는지와 같은 것을 쇼() 함수를 체인도 할 수 있습니다. 나는 그다지 많은 것을 얻지 못했지만 animate-callback-function을 사용하고 있습니다. 애니메이션이 끝나면 해고됩니다. 디자인에 의한 것인가? – OptimusCrime
절대적으로 - 내가 원하는 것은 모든 애니메이션 및 물건이 완성되면 클래스 closeButton의 div를 배치하기위한 것이지만 콜백에서 실행되는 것처럼 보이지 않지만 애니메이션이 실행되기 전에 문제가 발생한다는 것입니다. 내가 jsfiddle에서 그것을 얻을 수 있는지 보겠지 만, 관련성이 없거나 공개적으로 볼 수있는 모든 것을 제거하는 것은 많은 작업 일 것입니다. –