Я пишу простой маленький кусочек кода, чтобы рисовать пиксели там, где мышь находится в рамке.Я также хочу иметь четкую кнопку.Рисование работает нормально, но я не могу заставить работать кнопку очистки.Вот соответствующие части моего .js-файла:
function pixel(x, y) {
var pix = document.createElement("div");
pix.setAttribute("style", "position:absolute;left:" + x + "px;top:" +
y + "px;width:3px;height:3px;background:#000;cursor:crosshair");
return pix;
}
var mouseDown = false;
function draw(event) {
if (!mouseDown) return;
var x = event.clientX;
var y = event.clientY;
document.getElementById("box").appendChild(pixel(x, y));
}
/* Neither 1, 2, nor 3 work! */
function clear() {
var box = document.getElementById("box");
/* 1 */
// box.innerHTML = "";
/* 2 */
// box.childNodes = new NodeList();
/* 3 */
for (n in box.childNodes)
box.removeChild(n);
}
Соответствующая часть моего HTML-файла:
<body onmousedown="mouseDown=true" onmouseup="mouseDown=false">
<div id="box" onmouseover="document.getElementById('box').style.cursor='crosshair'"
onmousemove="draw(event)"></div>
<button onclick="clear()">Clear</button>
</body>
Поле также немного отформатировано с помощью CSS, но это не должноне проблема.Я чувствую, что проблема может быть в том, что я удаляю пиксели из поля, но не из документа или чего-то еще, но я нуб из JavaScript, поэтому я не знаю.