2013-02-11 7 views
1

Проверьте мои jsFiddle http://jsfiddle.net/JV8eU/JQuery клон() функция не работает должным образом

У меня есть клон div тег с помощью функции JQuery clone()

Когда кто-то нажмите на кнопку «Добавить», то новый клон div тега будет и когда кто-то нажимает «Удалить», то тег div будет удален.

Есть одна проблема с тем, что в оригинальном теге div также есть кнопка удаления, поэтому кто-то нажимает на нее, чтобы время оригинального тега div также удалялось.

Я не хочу показывать, что Удалить ссылку при выполнении кода, когда кто-то нажимает кнопку «Добавить», появляется ссылка «Удалить» с клоном тега div.

ответ

2

это то, что вы имеете в виду? http://jsfiddle.net/JV8eU/11/

Вы можете динамически добавлять удаление div перед добавлением нового содержимого. как таким образом: obj.append('<div class="pull-left"><a href="#"onclick="removeDOM(this)">Remove</a></div>');

+0

спасибо, его рабочий красиво –

3

Прежде всего в REMOVE кнопки DIV дают, что, как скрытые и в коде сделать ниже изменения ...

$(document).ready(function(){ 
    $("#Add").click(function(){ 
     $("#id").removeAttr("hidden"); 
     $("#id").show("slow"); 
     var obj = $("div.content").eq(0).clone(); //this will clone the html elements 
     $("div.row").append(obj); //this will append to the existing elements 
    }); 
}); 

и в теле ..

<div class="pull-left"><a href="#" onclick='removeDOM(this)' id="id" hidden>Remove</a></div> 
+0

ее не работает должным образом –

+0

Теперь проверить это .. – Neel

+0

я редактировал выше кода – Neel

2

Всегда помните, что при переопределении функциональность по умолчанию, это ваш друг:

e.preventDefault(); 

Это JSFiddle, кажется, работает хорошо: http://jsfiddle.net/turiyag/JV8eU/9/ Если вы хотите, чтобы также сохранить первоначальный элемент, этот код будет делать трюк: http://jsfiddle.net/turiyag/JV8eU/13/

+0

спасибо за помощь –

0

Поместить шаблон для строки в виде отдельного элемента:

<div class="template"> 
    <div class="content"> 
    ...the row template goes here 
    </div> 
</div> 
<div class="row"> 
</div> 

Скрыть шаблон:

.template { display: none; } 

Копирование строки из шаблона один раз с самого начала, и при щелчке на ссылке:

function copy() { 
    $("div.row").append($(".template .content").clone()); 
} 

$(document).ready(function() { 
    copy(); 
    $("#Add").click(copy); 
}); 

Демо: http://jsfiddle.net/JV8eU/14/

0

Просто подумал лучшей реализации. Вместо того, чтобы всегда скрывать оригинал, спрячьте его условно.

Here is JsFiddle

function removeDOM(thisObj){ 
if($('.content').size() == 2){ 
    $($('.remove-link').not(thisObj)[0]).hide(); 
} 
if($('.content').size() != 1) 
    $(thisObj).parent().parent().remove(); 
} 

Выгода, пользователь может удалить любую строку в зависимости от того что он/она хочет.

0

кнопку удалить формируют HTML и добавить его кнопка WHN нажата ....

var newRemoveButton ='<div class="pull-left"><a href="#" onclick='removeDOM(this)' id="id" hidden>Remove</a> </div>'; 
$(newRemoveButton).appendTo(obj); 

вы также можете посмотреть на этот link добавить некоторые эффекты.

Смежные вопросы