Что-то не так делаю с clone()
Здравствуйте.
Делаю добавление полей inputов при на жатии на кнопку. Вот ф-я добавления:
function add_elem()
{
$('.element').last().clone().appendTo($('#container_elements')).hide().show(400);
}
Почему то всеравно в копии сохраняется значения предыдущего поля, хоть никаких аргументов в clone нет. Пробывал по разному, и false ставил в аргументы, и false,false Спасибо. |
tiho,
Приведите минимальный HTML код для данного примера |
Ну так это нормальное поведение для clone, разве нет?
The .clone() method performs a deep copy of the set of matched elements, meaning that it copies the matched elements as well as all of their descendant elements and text nodes. |
...
<script type="text/javascript">
function add_elem()
{
$('.element').last().clone().appendTo($('#container_elem')).hide().show(400);
}
</script>
...
<div id="container_elem">
<div id="element" class="element" >
<input type="text" placeholder="Введите, за что расходы" name="input_za_chto" />
<input type="text" placeholder="Введите сумму расхода или процент" name="input_summa" class="input_summa" />
</div>
</div>
<span onclick="add_elem()">+ Добавить расход</span>
|
Цитата:
|
Цитата:
Цитата:
Приведите вид исходного input и преобразованно-копируемого |
Просто нужно чтобы элемент добавлялся после последнего такогоже в дереве, с пустыми полями.
|
Цитата:
|
2 однотипных инпута:
<input type="text" placeholder="Введите сумму расхода или процент" name="input_summa" class="input_summa" /> его копия - точно такая же (смотрел через хромовский дебагер) |
Цитата:
|
такой же, только с пустыми полями инпутов :)
|
Цитата:
|
да! :)
|
$('.element').last().clone().val("").appendTo($('#container_elements')).hide().show(400);
Вот так наверно? |
skfyann, не, у меня в копии не только инпуты) решил уже вот таким способом:
..... hide().show(400).find("input").val("")
Хотя готов поклясться что несколько действий назад мой код работал без этих find а сразу делал пустую копию. паранормальное явление 5. skfyann, deff, спасибо за помощь. |
tiho, чистить значения после того как показали пользователю имхо не хорошо.
|
Цитата:
$('.element').last().clone().hide().val("").appendTo($('#container_elements')).show(400)
|
skfyann, пользователь то их не увидел. Какая разница когда их чистить в данном случае, если они всеравно сначала создаются, а потом их убирать надо?
|
Цитата:
.appendTo($('#container_elements')).hide().show(400).find("input").val("");
Добавить элемент -> спрятать -> показать -> найти все инпуты -> их почистить |
Цитата:
var a = $('.element').last().clone().addClass("add").hide();
a.find("input").val("");
a.appendTo($('#container_elements'));
$('#container_elements .add').show(400).removeClass("add")
|
так ты наверно имеешь ввиду что увидел "браузер"?) потому что на экране ничего появляться не успевает. А в каком порядке чистить - я считаю не важно (дело вкуса) т.к. они наверно все равно память уже заняли сколько им надо, в независимости от того когда их почистили. Поправь меня если не прав.
|
| Часовой пояс GMT +3, время: 07:31. |