Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.11.2011, 22:09
Аспирант
Отправить личное сообщение для jsuse Посмотреть профиль Найти все сообщения от jsuse
 
Регистрация: 10.04.2010
Сообщений: 92

Вопрос по уроку "События мыши". В 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>

Последний раз редактировалось jsuse, 15.11.2011 в 22:11.
Ответить с цитированием
  #2 (permalink)  
Старый 15.11.2011, 22:12
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

d.value+=
?
__________________
29375, 35
Ответить с цитированием
  #3 (permalink)  
Старый 15.11.2011, 23:43
UDN UDN вне форума
Аспирант
Отправить личное сообщение для UDN Посмотреть профиль Найти все сообщения от UDN
 
Регистрация: 18.06.2009
Сообщений: 55

"\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 // старое+новое значение

Последний раз редактировалось UDN, 15.11.2011 в 23:50.
Ответить с цитированием
  #4 (permalink)  
Старый 15.11.2011, 23:49
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от UDN
d.value=d.value+newValue // старое+новое значение
Вариант Aetae лучше.
d.value*!*+=*/!* newValue
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 16.11.2011, 01:38
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Сообщение от trikadin Посмотреть сообщение
Вариант Aetae лучше.
Не лучше, просто компактнее.)
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 16.11.2011, 01:47
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Aetae
Не лучше, просто компактнее.)
И быстрее.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 16.11.2011, 01:54
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Разве что пишется быстрее. С точки зрения языка данные операции абсолютно равнозначны.
__________________
29375, 35
Ответить с цитированием
  #8 (permalink)  
Старый 16.11.2011, 02:02
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

Сообщение от Aetae
Разве что пишется быстрее. С точки зрения языка данные операции абсолютно равнозначны.
В js - может быть, не спорю. Но в других, как правило, нет. По той же причине, по какой ++A быстрее А= А+1 - не расходуется время на дополнительные операции извлечения числа.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #9 (permalink)  
Старый 16.11.2011, 16:08
Аватар для 9xakep
сегодня в 12:34|Комментир
Отправить личное сообщение для 9xakep Посмотреть профиль Найти все сообщения от 9xakep
 
Регистрация: 12.04.2011
Сообщений: 1,180

Разное время таки))
<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 раза меньше
Ответить с цитированием
  #10 (permalink)  
Старый 16.11.2011, 18:13
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,588

Это уже оптимизации конкретного браузера.
Проверните то же самое с произвольной большой текстовой строкой и разницы не будет.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
Выравнять три дива в одной строке debugx (X)HTML/CSS 9 06.10.2011 12:03
Вопрос: И опять про offsetLeft... sigurd Общие вопросы Javascript 11 04.10.2010 14:06
lastChild работает в IE, как тут быть? Puaris83 Firefox/Mozilla 4 17.04.2010 23:56
Вопрос по относительному позиционированию DIV XPOMOB (X)HTML/CSS 11 15.07.2009 17:02