나는 이미지 주위에 회색 오버레이로 화면의 중앙에 특정 클래스의 이미지를 표시하는 간단한 jQuery 플러그인을 작성하고있다. 오버레이를 클릭하면 사라집니다. 이제이 코드를 사용합니다.jQuery .add method
$("#overlay").click(function(){
$(this).animate({
opacity: "0"
}, 500, function(){
$(this).css({
display: "none"
});
});
$("#imgcontainer").animate({
opacity: "0"
}, 500, function(){
$(this).css({
display: "none"
});
});
});
imgcontainer는 이미지를 보유하고 있습니다. 이 쉬운 코드를 사용하려고했지만 작동하지 않습니다.
$("#overlay").click(function(){
$(this).add("#imgcontainer").animate({
opacity: "0"
}, 500, function(){
$(this).css({
display: "none"
});
});
});
왜 작동하지 않습니까?
UPDATE :
올바른 코드 :
$("#overlay").click(function(){
$("#imgcontainer").add(this).fadeOut();
});
감사 답변에 대한 많은. 이 동작 (버그?)은 실제로 매우 놀랍습니다.
'.fadeOut()'은 끝에'display : none'을 설정하므로'$ ("# imagecontainer") .add (this) .fadeOut()'가 작동해야합니다. 문제의 +1을 할 수 있다면 버그 신고에 +2를 부탁합니다. –
@ 닉 (Nick) : 재정렬에 대한 좋은 지적은 그것을 고치는 더 효율적인 방법입니다. 그리고 감사합니다. :-) 나는이 일을 겪었을 때 나는 오늘 일찍 머리를 꺼내고 있었다. –
J. -이 시점에서'.add (selector, context)'가 추가되었을 때 의도적이었습니다. 버그가 아니기 때문에 닫힐 것입니다. –