2015-07-15 2 views
1

Не могли бы вы взглянуть на this demo и сообщить мне, почему я не могу добавить функцию .slideDown() в процесс ввода динамического div после родителя выбранного элемента?Ошибка при добавлении анимации в динамический элемент в jQuery

$(function() { 
 
    $("button").on("click", function() { 
 
     $(".err").hide(); 
 
     var elem = $(this); 
 
     elem.parent().after('<div class="alert alert-danger err" role="alert">Thanks For Adding</div>').slideDown("slow"); 
 
    }); 
 
});
@import url("https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"); 
 
body { 
 
    padding:50px; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
 
<div class="well well-sm box"> 
 
    <button class="btn btn-default btn-block" type="submit">Add Box</button> 
 
</div> 
 
<div class="well well-sm box"> 
 
    <button class="btn btn-default btn-block" type="submit">Add Box</button> 
 
</div> 
 
<div class="well well-sm box"> 
 
    <button class="btn btn-default btn-block" type="submit">Add Box</button> 
 
</div> 
 
<div class="well well-sm box"> 
 
    <button class="btn btn-default btn-block" type="submit">Add Box</button> 
 
</div> 
 
<div class="well well-sm box"> 
 
    <button class="btn btn-default btn-block" type="submit">Add Box</button> 
 
</div>

ответ

3

Это должно работать :)

$(function() { 
    $("button").on("click", function() { 
     var elem = $(this); 
     var $div = $('<div/>',{class: 'alert alert-danger err',role: 'alert'}).hide().text('Thanks For Adding'); 
     $div.insertAfter(elem.parent()); 
     $div.slideDown("slow"); 
    }); 
}); 

https://jsfiddle.net/dja0jxm3/1/

+0

Wow! много изменений! Два вопроса: почему вы использовали 'insertAfter()' вместо 'after()'? и нужен ли нам объект jquery для '.err' div? – Suffii

+0

У нас есть объект $ div и рассказывается об объекте, где можно разместить внутри DOM. Это чище. Объект .err не нужен. Моя вина. Я обновил свой ответ и удалил его. – Darx