2010-11-06 3 views
3

Странный выпуск. У меня есть следующий код:jQuery append() только в первый раз

// remove template row from DOM and store in variable 

var $addDegreeRow = $('.addDegreeRow').remove(); 
$('#addDegreeLink').click(function (ev) { 
    ev.preventDefault(); 
    $('.degreeSection').append($addDegreeRow); 
}); 

Я выбрать элемент из DOM, удаляя его, и сохраняя его содержимое в селекторе $addDegreeRow. Затем я назначаю событие click для ссылки на странице, которая добавляет сохраненный селектор в существующий div на странице.

Первый раз, когда я нажимаю событие, все работает отлично. Но второй раз через ничего не добавляется. И если я посмотрю на HTML в firebug, div .degreeSection будет подсвечиваться каждый раз, когда я выполняю клик, даже если ничего не добавляется. Это похоже на то, что jQuery перезаписывает старый файл $addDegreeRow с новым, а не просто добавляет еще один.

Неужели кто-нибудь сталкивался с этим вопросом раньше? Благодарю.

ответ

11

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

+1

so '.append ($ addDegreeRow.clone())'? –

+0

Ах! Вы правы, это сработало. Благодарю. –

+0

@ Mega Matt, если бы этот ответ сработал для вас и был полезным, возможно, вы могли бы подумать о его принятии? –

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