jquery .clone() трабла
имею вид
<div id='block'> <div class='row'></div> <div class='row'></div> <div class='row'></div> </div>
var div=$('#block .row').last().clone();
$(document).click(function(){
$('#block').append(div);
})
просто хочу вставлять в див несколько копий элемента, но при вставке первый раз появляется копия, а последующие разы, последняя вставленная копия удаляется и появляется новая. Как можно избежать этого удаления ? Заранее благодарю |
$(document).click(function(){
$('#block').append($('#block .row').last().clone());
})
Пример http://javascript.info/play/6EBguc |
проблема в том что клон должен записаться только при загрузке страницы а выполнится уже на событии
$(function() {
var clone = $('#block .row').last().clone();
$(document).click(function(){
$('#block').append(clone);
})
})
вот в таком виде уже не работает(( может посоветуете каким образом можно по другому сделать |
Тогда я не понимаю что Вы хотите изобразить...
|
на странице имеються дивы
<div class='row'></div> внутри которых заменяется контен, мне нужно при входе на страницу сохранить копию одного дива что в поледствии, после изминения во всех таких дивах контента можно было вернуть изночальный вариант |
Записать вы имеете виду эту строчку
var clone = $('#block .row').last().clone();
?потом вам нужно его вставить в событие? это Вы привели кусок "вырваного" кода возможно, возможно у вас ошибка в объявлении вара, может он не доступен для вашего события |
даже здесь пробую, в минимализме, оно дает тот же эффект, вставляется один раз, после про100 удаляет последнюю вставленую и вставляет по новой.
тут та он доступен для события, вроде верно обьявляю |
----
|
$(function() {
var el = $('#block .row').last().clone()
$(document).click(function(){
$('#block').append(el.clone());
})
})
По моему оно http://javascript.info/play/FjIapc |
Serg_pnz спасибо, что то недапер до этого)
может кт подскажет почему дает такой эфект? |
Я всего лишь пользователь, как ядро работает - хз. Но получается, что создан объект, - один экземпляр, - и он сам на себя вставляется (смотрел поведение в firebug по "втыканию" элементов в страницу). А клонируя созданный, как бы в буфер объект, мы получаем искомое.
Поправьте, плз, кто шарит в движках. |
Цитата:
|
PeaceCoder,
причем тут jQuery? так устоен DOM.
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<button>clone text(incorrect)</button>
<button>clone text(correct)</button>
<button>remove clones</button>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nullam in tellus eget tellus dignissim facilisis. Integer ligula arcu orci aliquam.</p>
<script type="text/javascript">
var p = document.getElementsByTagName('p')[0],
buttons = document.getElementsByTagName('button'),
button1 = buttons[0],
button2 = buttons[1],
button3 = buttons[2];
var cloneP = p.cloneNode(true);// клон
button1.onclick = function () {
cloneP.style.border = "solid 1px red";
document.body.appendChild( cloneP );// вставляем в body один и тот же элемент
};
button2.onclick = function () {
var cloneOfCloneP = cloneP.cloneNode(true);
cloneOfCloneP.style.border = "solid 1px yellow";
document.body.appendChild( cloneOfCloneP );// вставляем в body клон клона, таким образом каждый раз создаем новый элемент
};
button3.onclick = function () {
var allP = document.getElementsByTagName('p');
while ( 1 in allP ) {
document.body.removeChild(allP[1])
}
};
</script>
</body>
</html>
|
| Часовой пояс GMT +3, время: 12:13. |