Посоветуйте как сделать..
Вот есть функция, которая создает новые элементы, предположим так:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>выпвып</title>
</head>
<body>
<button>создать новый элемент</button>
<!--<button>удалить последнее действие функции go()</button>-->
<script>
var w = window.innerWidth - 20;
var h = window.innerHeight - 20;
function go() {
function colorw() {
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
return "rgb(" + r + ", " + g + ", " + b + ")";
}
var a = document.createElement("div");
a.style.width = "20px";
a.style.height = "20px";
a.style.position = "absolute";
a.style.borderRadius = "5px";
a.style.top = Math.round(Math.random()*h) + "px";
a.style.left = Math.round(Math.random()*w) + "px";
a.style.background = colorw();
document.body.appendChild(a);
}
var b = document.getElementsByTagName("button")[0];
b.addEventListener("click", go);
</script>
</body>
</html>
При клике на кнопку, создается новый элемент. Хотелось бы написать функцию, которая удаляла предыдущее действие вышенаписанной функции. Подскажите, как это сделать? |
не имею в виду, чтоб удалила последний элемент в body, а именно удалила последнее действие!!!
|
dmitry111,
:) Cоздайте объект с записью последних действий ? |
dmitry111, добавьте к создаваемому div-у id и записывайте таковой в переменную (или массив), в последствии доставайте id из переменной (или последний элемент из массива) и удаляйте элемент...
если нужна история создания элементов пообширнее, то используйте, как предложил Deff, объект |
Цитата:
|
не могу понять как это можно реализовать с помощью созданного объекта.
Из примера выше действие функции заключается в 3-х составляющих: создать элемент, создать свойства для этого элемента и поместить его в body. То есть мне нужно создать объект с 3-мя литералами. И Если мне нужно удалить действие функции - удалить этот объект? :blink: Если не затруднит, покажите какой-нибудь пример. lord2kim, способ, описанный вами, понятен. Но мне это надо для функции, которая не элементы создает. Пример выше просто пример |
можно просто записывать в массив добавленные элементы. какие нафиг объекты\родители?
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>выпвып</title>
</head>
<body>
<button>создать новый элемент</button>
<button>удалить все</button>
<button>удалить последний</button>
<!--<button>удалить последнее действие функции go()</button>-->
<script>
var w = window.innerWidth - 20;
var h = window.innerHeight - 20;
var els = [];
function go() {
function colorw() {
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
return "rgb(" + r + ", " + g + ", " + b + ")";
}
var a = document.createElement("div");
a.style.width = "20px";
a.style.height = "20px";
a.style.position = "absolute";
a.style.borderRadius = "5px";
a.style.top = Math.round(Math.random()*h) + "px";
a.style.left = Math.round(Math.random()*w) + "px";
a.style.background = colorw();
document.body.appendChild(a);
els.push(a);
}
function remove_one () {
if (els.length) {
var el = els.pop();
el.parentNode.removeChild(el);
}
}
function remove_all () {
while (els.length) {
remove_one();
}
}
var b = document.getElementsByTagName("button")[0];
b.addEventListener("click", go, false);
var b = document.getElementsByTagName("button")[1];
b.addEventListener("click", remove_all, false);
var b = document.getElementsByTagName("button")[2];
b.addEventListener("click", remove_one, false);
</script>
</body>
</html>
|
bes,
вы издеваетесь :D |
melky,
вот , это мне нужно!!! Спасибо! |
Цитата:
<button>создать новый элемент</button>
<button>удалить все</button>
<button>удалить последний</button>
<div id="div"></div>
<script>
window.onload = function () {
var div = document.getElementById('div');
var w = window.innerWidth - 20;
var h = window.innerHeight - 20;
function colorw() {
var r = Math.floor(Math.random()*256);
var g = Math.floor(Math.random()*256);
var b = Math.floor(Math.random()*256);
return "rgb(" + r + ", " + g + ", " + b + ")";
}
function create() {
var a = document.createElement("div");
a.style.width = "20px";
a.style.height = "20px";
a.style.position = "absolute";
a.style.borderRadius = "5px";
a.style.top = Math.round(Math.random()*h) + "px";
a.style.left = Math.round(Math.random()*w) + "px";
a.style.background = colorw();
div.appendChild(a);
}
document.body.children[0].onclick = function () {
create();
}
document.body.children[1].onclick = function () {
div.innerHTML = '';
}
document.body.children[2].onclick = function () {
if (div.lastChild) {
div.removeChild(div.lastChild);
}
}
}
</script>
|
| Часовой пояс GMT +3, время: 16:51. |