답변:
div가 추가 되 자마자 브라우저에 표시되는 내용이 업데이트되므로 추가 효과가 작동하지 않습니다. 따라서 Mark B와 Steerpike의 답변을 결합하려면 다음을 수행하십시오.
실제로 추가하기 전에 추가하려는 div의 스타일을 숨김으로 지정하십시오. 인라인 또는 외부 CSS 스크립트를 사용하거나 div를 다음과 같이 만들 수 있습니다.
<div id="new_div" style="display: none;"> ... </div>
그런 다음 추가 효과 ( demo )에 효과를 연결할 수 있습니다 .
$('#new_div').appendTo('#original_div').show('slow');
또는 ( 데모 ) :
var $new = $('#new_div');
$('#original_div').append($new);
$new.show('slow');
.append()
은 선택기 문자열조차 가져 가지 않습니다. 그래도 아이디어는 정확합니다. 감사합니다.
본질은 이것입니다 :
이것은 나를 위해 작동합니다 :
var new_item = $('<p>hello</p>').hide();
parent.append(new_item);
new_item.show('normal');
또는:
$('<p>hello</p>').hide().appendTo(parent).show('normal');
element.slideUp("slow", function(){ element.appendTo(parent).hide(); element.slideDown(); });
다음과 같은 것 :
$('#test').append('<div id="newdiv">Hello</div>').hide().show('slow');
해야합니까?
편집 : 죄송합니다, 코드에 실수가 있으며 Matt의 제안도 기내에 올라갔습니다.
$('#divid').append('#newdiv').hide().show('slow')
.
비슷한 종류의 솔루션이 필요했고 페이스 북과 같은 벽에 데이터를 추가하고 싶을 때 게시 할 때 prepend()
최신 게시물을 추가하는 데 사용하면 다른 사람들에게 유용 할 수 있다고 생각했습니다.
$("#statusupdate").submit( function () {
$.post(
'ajax.php',
$(this).serialize(),
function(data){
$("#box").prepend($(data).fadeIn('slow'));
$("#status").val('');
}
);
event.preventDefault();
});
ajax.php의 코드는
if (isset($_POST))
{
$feed = $_POST['feed'];
echo "<p id=\"result\" style=\"width:200px;height:50px;background-color:lightgray;display:none;\">$feed</p>";
}
다음과 같이 간단히 숨기고, 추가하고, 보여주십시오.
<div id="parent1" style=" width: 300px; height: 300px; background-color: yellow;">
<div id="child" style=" width: 100px; height: 100px; background-color: red;"></div>
</div>
<div id="parent2" style=" width: 300px; height: 300px; background-color: green;">
</div>
<input id="mybutton" type="button" value="move">
<script>
$("#mybutton").click(function(){
$('#child').hide(1000, function(){
$('#parent2').append($('#child'));
$('#child').show(1000);
});
});
</script>