Вопрос по уроку "События мыши". В textarea пропадает текст. Почему?
У этом уроке есть такой пример http://beta.javascript.ru/tutorial/m...событий.
Что интересно. Там, при событии мыши, в textarea пишется результат. При этом каждый новый - на новой строке. Я попробовал написать код этого примера. Но у меня почему-то предыдущая запись удаляется. В чем проблема? Вот мой код. <input id="btn1" type="button" value="on mouse down" /> <textarea id="txt" style="height:50px; width:200px;"></textarea> <script> var a = document.getElementById("btn1"); a.onmousedown = function(e) { var d = document.getElementById("txt"); var j = e.button; //получаем какой кнопкой было действие d.value = j; } a.onmouseup = function(e) { var d = document.getElementById("txt"); var j = e.button; d.value = "\n" + "which==" + j; //вставляю пробел, текст + результат. Но стирает предыдущею строку, пишет по новой, хоть и с пробелом. } </script> |
d.value+=? |
"\n" - не пробел, а новая строка
хотя бы http://www.snkey.net/books/webmaster...pt-syntax.html к тому же вы присваиваете новое значение. d.value=newValue // присвоить d.value новое значение; d.value=1; alert(d.value) // вернет 1 если хотите добавить d.value=d.value+newValue // старое+новое значение |
Цитата:
d.value*!*+=*/!* newValue |
Цитата:
|
Цитата:
|
Разве что пишется быстрее. С точки зрения языка данные операции абсолютно равнозначны.
|
Цитата:
|
Разное время таки))
<script type="text/javascript"> var a = 5; console.time("time1") a += 1 console.timeEnd("time1") // time1: 0ms (25µsec) var b = 5 console.time("time2") b = b + 1 console.timeEnd("time2") // time2: 0ms (11µsec) </script> Каждый раз 2ой результат был в 2 раза меньше :) |
Это уже оптимизации конкретного браузера.
Проверните то же самое с произвольной большой текстовой строкой и разницы не будет. |
Часовой пояс GMT +3, время: 20:44. |