Генерация и удаление
Подскажите, вот есть код..
<div id="variants"> <div class="control-group" id="uzz"> <label class="control-label">Username</label> <div class="controls"> <input type="text" placeholder="Username" name="name[]"> <a class="del_variant">X</a> </div> </div> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document).ready(function(){ var variant = $('#uzz').clone(true); $('#ss').click(function() { $(variant).clone(true).appendTo('#variants').fadeIn('slow').find("input[name*=name]").focus(); }); $('a.del_variant').click(function() { $("#uzz").remove(); }); }); </script> </div><span id="ss">Добавить вариант</span> При нажатии на ДОБАВИТЬ ВАРИАНТ,..все, оке..добавляется, но вот при тыки на Х работает только первый вариант...Как сделать что бы при нажатии на против каждого работало именно для него? |
Цитата:
|
EleGant,
22 строка начало $(document).on('click',далее по документации и думайте что удалять |
Цитата:
$(this).remove(); }); Сделал, так, стал удаляться только X в первом инпуте. |
EleGant,
:cray: :cray: <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #ss, .del_variant{ cursor: pointer; } </style> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document) .ready(function () { var variant = $('#uzz') .clone(true); $('#ss') .click(function () { $(variant) .clone(true) .appendTo('#variants') .fadeIn('slow') .find("input[name*=name]") .focus(); }); $(document) .on('click', 'a.del_variant', function () { $(this) .parents(".control-group") .remove(); }); }); </script> </head> <body> <div id="variants"> <div class="control-group" id="uzz"> <label class="control-label">Username</label> <div class="controls"> <input type="text" placeholder="Username" name="name[]"> <a class="del_variant">X</a> </div> </div> </div><span id="ss">Добавить вариант</span> </body> </html> |
Спасибо!!)
|
Цитата:
|
Цитата:
|
KEMPZOR, в 29-ой строчке поменять
'a.del_variant' на 'a.del_variant:not(:first)' |
Diphenyl Oxalate,
а как решить не меняя ничего в скрипте? |
рони, заинтриговали. Не знаю.
|
Diphenyl Oxalate,
Цитата:
|
Diphenyl Oxalate,
следущая подсказка не только в скрипте ничего не менять, но и в body. |
Diphenyl Oxalate,
Пример: решения
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <style type="text/css"> #ss, .del_variant{ cursor: pointer; } *!* .control-group:nth-child(1) .del_variant{ display: none; } */!* </style> <script src="http://code.jquery.com/jquery-latest.js"></script> <script> $(document) .ready(function () { var variant = $('#uzz') .clone(true); $('#ss') .click(function () { $(variant) .clone(true) .appendTo('#variants') .fadeIn('slow') .find("input[name*=name]") .focus(); }); $(document) .on('click', 'a.del_variant', function () { $(this) .parents(".control-group") .remove(); }); }); </script> </head> <body> <div id="variants"> <div class="control-group" id="uzz"> <label class="control-label">Username</label> <div class="controls"> <input type="text" placeholder="Username" name="name[]"> <a class="del_variant">X</a> </div> </div> </div><span id="ss">Добавить вариант</span> </body> </html> |
Цитата:
Подскажите ещё один момент, например у меня есть не 1 а 4 input. Первые три это текстовые строки, четвертая строка для числа. Как мне при вводе только в первый блок и нажатию добавить, добавляло информацию в последующий создаваемый блок ну и суммировало четвёртый ? Подскажите пожалуйста. |
Цитата:
|
Цитата:
Вот есть <input type="text" placeholder="Username" name="name[]"> нажимаю Добавить вариант, добавляется второй блок, третий и так далее. Задумка такая, в первый блок input вводишь число 3, далее (добавить вариант), создаётся блок с числом 3 в value, далее опять в первый блок input число 4, добавляется следующий блок с числом 4 в value. Ну и где нибудь рядышком <p id="summa"></p>, который выводит в сумме значения name="name[]". |
KEMPZOR,
не понимаю, но посмотрите тут Динамическое создание поля ввода и кнопок Сохранить Удалить + Сумма строк с редактированием данных |
Цитата:
|
Цитата:
Эх, что то не выходит то что задумал. Вот по примеру сделал только вместо input подставил текст. <div id="variants"> <div class="control-group uzz"> <label class="control-label">Username</label> <div class="controls"> <p id="type_jaluzis1" class="clone_element"></p> <p id="type_vidshtor1" class="clone_element"></p> <p id="type_material_inf1" class="clone_element"></p> <p id="type_name_tkan1" class="clone_element"></p> <p id="type_shirina_visota1" class="clone_element"></p> <p id="type_itogo_inf1" class="clone_element"></p> <a class="del_variant">X</a> </div> </div> </div> <input type="button" id="test_button_text" name="btnz" value="Добавить"/> Есть скрытые инпуты, в которых храниться меняющаяся информация. <input id="type_jaluzis" name="from_form_inf" type="hidden" value="Информация1" /> <input id="type_vidshtor" name="from_form_inf" type="hidden" value="Информация2" /> <input id="type_material_inf" name="from_form_inf" type="hidden" value="Информация3" /> <input id="type_name_tkan" name="from_form_inf" type="hidden" value="Информация4" /> <input id="type_shirina_visota" name="from_form_inf" type="hidden" value="Информация5" /> <input id="type_itogo_inf" name="from_form_inf" type="hidden" value="Информация6" /> Этот код клонирования элемента по нажатию на кнопку "Добавить". $(document) .ready(function () { var variant = $('.uzz') .clone(true); $('#test_button_text') .click(function () { $(variant) .clone(true) .appendTo('#variants') .fadeIn('slow') .find(".clone_element") .focus(); }); $(document) .on('click', 'a.del_variant', function () { $(this) .parents(".control-group") .remove(); }); }); Этот код по нажатию на кнопку #test_button_textзадает переменные, которые потом выводятся в своём <p id=""></p> $(document).ready(function(){ $("#test_button_text").on("click" ,function(){ var divjal = $("#type_jaluzis").val(); var divvid =$("#type_vidshtor").val(); var divmat =$("#type_material_inf").val(); var divname =$("#type_name_tkan").val(); var divshirvis =$("#type_shirina_visota").val(); var divitogo =$("#type_itogo_inf").val(); $("#type_jaluzis1").html(divjal); $("#type_vidshtor1").html(divvid); $("#type_material_inf1").html(divmat); $("#type_name_tkan1").html(divname); $("#type_shirina_visota1").html(divshirvis); $("#type_itogo_inf1").html(divitogo); }); }) Не получается эти два кода объеденить, чтобы по нажатию на кнопку #test_button_textсоздавало новый объект и присваивало этому объекту текущие значения input hidden value на момент клика. Есть какие размышления ? Я так понимаю что нужно не клонировать элементы, а создать их средствами скрипта. ? |
Часовой пояс GMT +3, время: 19:26. |