Вход

Просмотр полной версии : Не могу удалить клонируемые элементы


ViktorCore
13.12.2011, 12:32
Элементы из списка, по нажатию на чекбокс - клонируются в нижнюю часть страницы, по повторному нажатию должны удаляться, но почему-то не удаляются.
Вот код спсика:


<? printf ('<tr><td><p id="consultation"><input type="radio" name="consultation"
id="MainConsult" value="%s" checked>
<strong>Юридическая консультация онлайн</strong></p></td><td>$%s</td></tr>
',$Service1price["price"], $Service1price["price"]);

printf ('<tr><td><p><input type="checkbox" name="FizDogovor" value="%s">
Разработка лицензионного договора для Физ. Лица</p></td> <td>$%s</td></tr>
',$Service2price["price"], $Service2price["price"]);
printf ('<tr><td><p><input type="checkbox" name="FirmDogovor" value="%s">
Разработка лицензионного договора для Предпринимателей</p></td>
<td>$%s</td></tr>',$Service2price["price"], $Service2price["price"]);
printf ('<tr><td><p><input type="checkbox" name="Negotiations" value="%s">
Представительство в переговорном процессе</p></td>
<td>$%s </td></tr>',$Service5price["price"], $Service5price["price"]);
printf ('<tr><td><p><input type="checkbox" name="TradeMark" value="%s">
Регистрация Торговой Марки</p></td>
<td>от $%s</td></tr>',$Service6price["price"], $Service6price["price"]); ?>
<tr><td><p><input type="checkbox" name="FizDogovor" value="">
Создание Франчайзинга (увеличение доходов от ИС)</p></td>
<td>от $1000</td></tr>
<? printf ('<tr><td><p><input type="checkbox" name="LawService" value="%s">
Ваш юридический отдел (абонентское обслуживание)</p></td>
<td>$%s/месяц</td></tr>',$Service7price["price"], $Service7price["price"]);
printf ('<tr><td><p><input type="checkbox" name="LawOptimum" value="%s">
Оптимизация юридической составляющей предприятия</p></td>
<td>$%s</td></tr>',$Service8price["price"], $Service8price["price"]);
printf ('<tr><td><p><input type="checkbox" name="CourtSucsessChance" value="%s">
Оценка судебных рисков, и шансов выиграть Суд (цена)</p></td>
<td>$%s</td></tr>',$Service3price["price"], $Service3price["price"]);
printf ('<tr><td><p><input type="checkbox" name="Agrremants" value="%s">
Внесудебное решение споров с Интеллектуальной Собственностью</p></td>
<td>$%s</td></tr>',$Service10price["price"], $Service10price["price"]);
printf ('<tr><td><p><input type="checkbox" name="CourtTrial" value="%s">
Судебное представительство для Предприятий и Предпринимателей</p></td>
<td>$%s</td></tr>',$Service11price["price"], $Service11price["price"]);

printf ('<tr><td><p id="consultation"><input type="radio" name="consultation"
id="BigConsult" value="%s">
<strong>Юридическая консультация для крупных <br/>Владельцев Интеллекутальной Собственности
</strong></p></td><td>$%s</td></tr>',$Service12price["price"], $Service12price["price"]);

printf ('<tr><td><p><input type="checkbox" name="NeotiationPack" value="%s">
Комплекс услуг «Представительство при переговорах»</p></td>
<td>$%s</td></tr>',$Service13price["price"], $Service13price["price"]);
printf ('<tr><td><p><input type="checkbox" name="FizCourt" value="%s">
Ваш Юридический Департамент</p></td>
<td>$%s/месяц</td></tr>',$Service14price["price"], $Service14price["price"]);
printf ('<tr><td><p><input type="checkbox" name="LawAudit" value="%s">
Юридический аудит Интеллектуальной Собственности</p></td>
<td>$%s</td></tr>',$Service15price["price"], $Service15price["price"]);
printf ('<tr><td><p><input type="checkbox" name="Monitor" value="%s">
Мониторинг нарушения Ваших прав на Интеллектуальную Собственность</p>
</td><td>$%s</td></tr>',$Service16price["price"], $Service16price["price"]); ?>


А вот код ЯвСкрипта:

// Элементы списка добавляются в онлайн договор
$('p:has(input[type="checkbox"]), p input[type="checkbox"]').toggle(
function(){ $(this).children('input').attr('checked', true);
$(this).addClass('selected');

var serviceCopy = $(this).clone();
serviceCopy.id = $(this).clone().children('input').attr('name') + "cloned";
alert (serviceCopy.id);
$('#Padress').after(serviceCopy);
},

function(){ $(this).children('input').removeAttr('checked');
$(this).removeClass('selected');
var removeCopy = '#' + $(this).children('input').attr('name') + "cloned";
$(removeCopy).remove();


});


В итоге объект клонируются, но выбрать и удалить его почему-то не могу. Возникает вопросы - получилось ли присвоить идентификатор? В чем ошибка, и как решить?

ViktorCore
20.12.2011, 02:38
Так никто помочь не может?

FINoM
20.12.2011, 06:58
ViktorCore, может. И с радостью поможет, если ты представишь проблему в более читабельном виде.

trikadin
20.12.2011, 07:44
И с радостью
Ну, насчёт радости спорно... Но поможем)

ViktorCore
20.12.2011, 13:59
есть абзацы Р внутри которых размещен Инпут типа чекбокс.

По нажатию на абзац - весь абзац копируется ниже на страницу, чекбокс выделяется, и задний фон абзаца меняет цвет.

По второму нажатию на этот же абзац - выделение абзаца убиреатеся, выделение чекбокса снимается, и клонированный ниже на странице элемент - удаляется.

Код привел такой как есть в программе.

Мне надо понять - как удалить клон, по щелчку на абзац?

Если что-то в коде конкретное непонятно - спрашивайте буду обьяснять что к чему. Так с ходу, сложно понять что понимается под "представить проблему в более читабельном виде".

ksa
20.12.2011, 14:25
Мне надо понять - как удалить клон, по щелчку на абзац?
У тебя для этого есть чекбокс. ;) Проверь его состояние...

Код привел такой как есть в программе.
А ты потрудись и сделай простенький примерчик "чисто для нас". :) Вот мы на нём тебя и направим в правильное русло... ;)

ViktorCore
20.12.2011, 15:03
<tr><td><p><input type="checkbox" name="FizDogovor" value="%s">
Разработка лицензионного договора для Физ. Лица</p></td> <td>$%s</td></tr>

<tr><td><p><input type="checkbox" name="FirmDogovor" value="%s">
Разработка лицензионного договора для Предпринимателей</p></td>
<td>$%s</td></tr>

<tr><td><p><input type="checkbox" name="Negotiations" value="%s">
Представительство в переговорном процессе</p></td>
<td>$%s </td></tr>

<tr><td><p><input type="checkbox" name="TradeMark" value="%s">
Регистрация Торговой Марки</p></td><td>от $%s</td></tr>

Надеюсь так понятней: есть абзацы "Р" в которых заключены инпуты, абзацы находятся внутри ячеек таблицы.

Задача: по нажатию абзаца или чекбокса - копировать и удалять этот абзац вниз страницы.

Ниже ДжавСкрипт код с комментами:


// Элементы списка добавляются в онлайн договор
$('p:has(input[type="checkbox"]), p input[type="checkbox"]').toggle(
// выбираю чекбокс и абзац в котором чекбокс

function(){ $(this).children('input').attr('checked', true);
$(this).addClass('selected'); // по нажатию на абзац чекбокс получает галочку, а абзац меняет цвет;

var serviceCopy = $(this).clone(); // клонирую выбранный абзац
serviceCopy.id = $(this).clone().children('input').attr('name') + "cloned";
// присваиваю клону идентификатор

$('#Padress').after(serviceCopy); // вставляю клона перед #Padress
alert (serviceCopy.id); // проверяю есть ли идентификатор у клона
},

// по второму нажатию на абзац, чекбокс и подсветка абзаца убираются
function(){ $(this).children('input').removeAttr('checked');
$(this).removeClass('selected');

var removeCopy = '#' + $(this).children('input').attr('name') + "cloned";
// заношу в переменную идентификатор объекта, который надо будет удалить
$(removeCopy).remove(); // удаля объект с указанным идентификатором
});


Результат - абзац с чекбоксом клонируется как надо, но по второму нажатию клонированный абзац не удаляется. Нужно чтоб удалялся.

Уже понятнее?

ksa
20.12.2011, 15:19
Надеюсь так понятней
Ты понимаешь что такое "полный, тестовый пример"? Посмотри в свежих темах - их там навалом. Они даже могут быть запущены прямо тут в теме...

Начинай прилагать собственные усилия в решении своих же проблем. ;)

ViktorCore
20.12.2011, 15:28
ksa,

Я видел что какие-то примеры можно запускать, но как такие примеры делать - не знаю.

По поводу усилий - Я прилагаю. ;)

ksa
20.12.2011, 15:33
но как такие примеры делать - не знаю
По аналогии...

Я прилагаю
Эо отрадно... :yes:

ViktorCore
20.12.2011, 16:25
Что по аналогии? Там тот же код, только рядом с кодом есть кнопочка проигрывателя. Как делается так, чтоб была кнопочку проигрывателя - Я не понимаю. Так как мне собрать рабочий код прямо на форуме, если Я не понимаю как прикрепить эту кнопку проигрывания и что для этого делать?

ksa
20.12.2011, 20:24
Я не понимаю как прикрепить эту кнопку проигрывания и что для этого делать?
Все ответы тут...
http://javascript.ru/formatting