Javascript.RU

Свойства объекта событие

Update: Более новый материал по этой теме находится по адресу https://learn.javascript.ru/obtaining-event-object.

В объекте события содержится подробнейшая информация о том, что и где произошло.

К сожалению, здесь много кросс-браузерных несовместимостей, однако самые важные из них легко преодолимы.

Тип события можно получить, используя кроссбраузерное свойство type объекта событие.

function getEventType(e) {
	if (!e) e = window.event;
	alert(e.type);
}

Данный код в действии (в примере обрабатываются события click и mouseout):

Чаще всего нужно узнать, на каком элементе сработало событие.

Например, мы поймали на внешнем div'е и хотим знать, на каком из внутренних элементов оно на самом деле произошло.

В Internet Explorer у объекта window.event для этого есть свойство srcElement, в остальных браузерах, работающих по рекомендациям W3C, для этого используется event.target.

Вот пример использования этого свойства. Обработчик стоит только на внешнем диве, но благодаря event.target выводит по клику класс исходного элемента.

<div class="d1" 
  onclick="*!*t=event.target||event.srcElement; alert(t.className)*/!*"
>
<span class="number">1</span>
    <div class="d2">
        <span class="number">2</span>
        <div class="d3">
            <span class="number">3</span>
        </div>
        <a class="d2a" href="javascript:void(0)">Ссылка</a>
    </div>
</div>

Javascript-обработчик в примере висит только на внешнем диве d1 и выглядит примерно так:

function(event) {
  // получить объект событие.
  // вместо event лучше писать window.event
  event = event || window.event

  // кросс-браузерно получить target
  var t = event.target || event.srcElement

  alert(t.className)
}

Для событий mouseout и mouseover предусмотрен способ получить как элемент на который курсор мыши перешел, так и элемент, с которого он перешел.

Эти свойства - relatedTarget в W3C, и fromElement/toElement в Internet Explorer.

// Обработчик для mouseover
function mouseoverHandler(event) {
	event = event || window.event
	var relatedTarget = event.relatedTarget || event.fromElement
	// для mouseover
	// relatedTarget - элемент, *!*с которого*/!* пришел курсор мыши
}

// Обработчик для mouseout
function mouseoutHandler(event) {
	event = event || window.event
	var relTarg = event.relatedTarget || event.toElement
	// для mouseout
	// relatedTarget - элемент, *!*на который*/!* перешел курсор мыши
}

Свойство relatedTarget дополняет target. В нем всегда находится информация о втором элементе, участвовавшем в событии.

Поэтому его можно получить для IE, взяв то свойство из fromElement/srcElement, которое не равно target:

if (!e.relatedTarget && e.fromElement) {
  e.relatedTarget = (e.fromElement==e.target) ? e.toElement : e.fromElement
}

При всплытии - событие по очереди вызвает обработчики на элементе-триггере и дальше, вверх по документу.

По мере всплытия, текущим элементом каждый раз становится новый. Иначе говоря. текущий элемент - это тот, к которому в данный момент "доплыло" событие.

Стандартный способ получить текущий элемент - использовать переменную this.

Например, при клике на внутренний div, код в этом примере последовательно отмечает элементы, на которых регистрируется всплывающее событие:

1

2

3
<div class="d1" onclick="highlightMe(this)">1
    <div class="d2" onclick="highlightMe(this)">2
        <div class="d3" onclick="highlightMe(this)">3</div>
    </div>
</div>

После получения события обычно интересно узнать, какая кнопка была нажата. Если, конечно, это не событие contextmenu, с которым все и так понятно

Для этого в объекте event есть два свойства: event.which и event.button, которые содержат числовые значения, соответствующие нажатой кнопке. К сожалению, тут есть некоторые несовместимости.

  Internet Explorer Firefox, Safari Win и Opera Konqueror
ЛЕВАЯ КНОПКА event.which undefined 1 1
event.button 1 0 1
СРЕДНЯЯ КНОПКА event.which undefined 2 2
event.button 4 1 4
ПРАВАЯ КНОПКА event.which undefined 3 3
event.button 2 2 2

Свойство event.which было изначально изобретено Netscape, а event.button использовалось в Internet Explorer.
Через некоторое время браузеры стали использовать оба и все перепуталось.

В стандарте W3C прописано свойство button, которое ведет себя, как в Firefox, т.е:

  • 0 - левая кнопка
  • 1 - средняя кнопка
  • 2 - правая кнопка

Подход создателей браузера Internet Explorer, вообще говоря, более универсальный, так как button является 3-битовым числом, каждый бит которого отвечает за кнопку мыши.

Так, button & 1 (первый бит) установлен в 1, если нажата левая кнопка, button & 2 (второй бит) установлен в 1, если нажата правая кнопка, и button & 4 (третий бит) - если нажата средняя.

В результате мы не можем отловить, когда, например, нажаты левая и правая кнопки, а когда только левая или только правая. К сожалению, это можно сделать только в IE.

Удобнее всего - взять за основу свойство which, которое одинаково поддерживают почти все браузеры.

Остается лишь составить which из button для Internet Explorer:

if (!e.which && e.button) {
  if (e.button & 1) e.which = 1
  else if (e.button & 4) e.which = 2
  else if (e.button & 2) e.which = 3
}

Вот универсальный тестовый стенд по определению клавиш. Выбирайте любую мышь и жмите кнопу из любого браузера - ниже появятся названия событий и значения which/button.


При обработке событий, связанных с мышью, нужен кроссбраузерный способ получения координат курсора из события в обработчике.

Координаты курсора мыши относительно окна находятся в стандартных свойствах clientX/clientY. Они одинаково поддерживается всеми браузерами.

Если у вас есть окно 500x500, и мышь находится в центре, то clientX и clientY будут оба равны 250. Если вы затем проскроллируете документ вниз, налево или вверх, не двигая курсор - значения clientX/clientY не изменятся, так как отсчитываются относительно окна, а не документа.

Как правило, при обработке события нужна позиция мыши относительно документа, учитывающая прокрутку. Стандарт W3C предоставляет для этого свойство pageX/pageY.

Если у вас есть окно 500x500, и мышь находится в центре, то pageX и pageY будут оба равны 250. Если вы затем проскроллируете на 250 пикселей вниз, pageY станет равным 750.

Таким образом pageX/pageY содержат координаты, на каком месте документа произошло событие, учитывая все прокрутки.

Свойства pageX/pageY поддерживаются всеми браузерами, кроме Internet Explorer.

В IE их можно получить из clientX/clientY, прибавив к ним scrollLeft/scrollTop.

Обычно оно находится в <body>: document.body.scrollLeft, но это не всегда так. Например, при выборе Strict DTD оно высчитывается для <html>: document.documentElement.scrollLeft. Кроме того, тэга <body> может просто не быть в документе.

Поэтому мы сначала возьмем html.scrollLeft (если есть), затем проверим body.scrollLeft. Если нет ни того, ни того, то 0.

var html = document.documentElement
var body = document.body
e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0)

Кроме того, document в IE может быть немного сдвинут с позиции 0,0. Значение сдвига находится в document.documentElement.clientLeft/clientTop, и его также необходимо учесть.

Этот код позволяет надежно получить pageX/pageY для IE, в котором его изначально нет:

if (e.pageX == null && e.clientX != null ) { 
    var html = document.documentElement
    var body = document.body

    e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
    e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
}

Этот обработчик mouseMove обновляет координаты мыши относительно документа.

function mouseShowHandler(e){
	e = e || window.event

	if (e.pageX == null && e.clientX != null ) { 
		var html = document.documentElement
		var body = document.body
	
		e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
		e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
	}

	
	document.getElementById('mouseX').value = e.pageX
	document.getElementById('mouseY').value = e.pageY
}

Координата X:
Координата Y:

Вы узнали, как работают и как кросс-браузерно получить основные свойства объекта события:

  • Текущий элемент: this
  • Тип события: event.type
  • Элементы-триггеры: event.target/relatedTarget
  • Кнопка мыши: event.which
  • Курсор относительно окна: event.clientX/clientY
  • Курсор относительно документа: event.pageX/pageY

Кроме того, увидели их в действии на демо.

Этих свойств хватает для 95% задач, связанных с событиями.


Автор: Гость (не зарегистрирован), дата: 29 апреля, 2009 - 00:27
#permalink

в опере правую не отследить


Автор: Гость (не зарегистрирован), дата: 15 августа, 2023 - 10:17
#permalink

I appreciate your input, but I find myself in geometry dash dissent with your argument because it fails to consider the broader implications and potential consequences.


Автор: Гость (не зарегистрирован), дата: 1 ноября, 2023 - 20:18
#permalink

Engage in the challenge of achieving the highest score in Suika Game , where every strategic decision and skillful merge is a testament to your gaming finesse and expertise, setting new records and paving the way for a gaming legacy that will stand the test of time.


Автор: Гость (не зарегистрирован), дата: 4 июня, 2009 - 15:53
#permalink

Отследить можно. Просто в опере по-умолчанию запрещён перехват правой кнопки мыши.


Автор: Гость (не зарегистрирован), дата: 12 июня, 2009 - 18:00
#permalink

Спасибо. спасибо. Я к вам попал с википедии. То, что надо.


Автор: Гость (не зарегистрирован), дата: 12 июня, 2009 - 18:02
#permalink

Не могу понять, почему window.pageXOffset, или ..Y.. вечно ноль показывает. Вы не знаете?


Автор: Илья Кантор, дата: 12 июня, 2009 - 22:44
#permalink

pageXOffset - не очень поддерживаемое свойство..


Автор: Anatolich, дата: 1 июля, 2009 - 19:14
#permalink

При различных разрешениях экрана координаты объектов на странице различные.
Есть ли какое - то решение этого случая?


Автор: Гость (не зарегистрирован), дата: 14 июля, 2009 - 20:39
#permalink
function getEventType(e) {
    if (!e) var e = window.event;
    alert(e.type);

А почему так сложно? Почему нельзя просто

<input type="button" value="Get event type" onclick="alert(window.event.type)" />

Автор: Гость (не зарегистрирован), дата: 17 июля, 2009 - 08:22
#permalink

лол, ну всё, теперь тебе можно идти в web-разработчики без высшего и заработной платой не меньше $5000 в месяц, просто утер нос автору)

А статья действительно хорошая, спасибо.


Автор: Delfi, дата: 22 мая, 2010 - 15:16
#permalink

Человек пытается понять, а вы налетели...
Поступаете еще глупее, чем он...


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2010 - 23:45
#permalink

Потому что из-за таких, как ты, скрипты на сайтах работают только в ИЕ...


Автор: Гость (не зарегистрирован), дата: 15 июля, 2013 - 13:14
#permalink

У автора есть проверка у тебя её нет


Автор: Гость (не зарегистрирован), дата: 5 апреля, 2017 - 08:32
#permalink

Из-за разных браузеров, в мозилле объект события event прочтется только если передан в обработчик в качестве параметра


Автор: apxat (не зарегистрирован), дата: 9 августа, 2009 - 00:22
#permalink

Было бы полезно добавить полный код последнего примера (демо), всмысле хтмл для полей в которых выводятся координаты, не совсем понял как они в реальном времени работают.


Автор: ze8s, дата: 9 августа, 2009 - 16:10
#permalink

да вроде обработчик повешен на mousemove и он при движении мышки меняет значения в полях на коорд мышки автоматом.


Автор: Гость (не зарегистрирован), дата: 27 марта, 2010 - 09:16
#permalink

Мне кажется, с отслеживанием координат мышки автор слегка лукавит. Не спроста вызов MouseShowHandler остался за кадром. Там встречаются неизвестные всякие JQuery и AJAX. Очевидно, так просто из скрипта MouseMove не перехватить Sad


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2010 - 23:48
#permalink

Не паникуем, а учим матчасть тщательнее. Все так, как написано.


Автор: Гость (не зарегистрирован), дата: 5 июля, 2011 - 05:08
#permalink

Ололо нубик. JavaScript выполняется на стороне клиента.
ы) jQuery AJAX и все такое гы гы гы.


Автор: Hank (не зарегистрирован), дата: 16 июня, 2020 - 21:55
#permalink

i think you're right, but I'll have to make sure. thanks for sharing though. fencing santa fe nm


Автор: Гость (не зарегистрирован), дата: 16 июня, 2020 - 22:36
#permalink

thanks for sharing!1 concrete cutting spokane wa


Автор: AraGnom, дата: 9 ноября, 2009 - 22:36
#permalink

Почему в FireFox v3 "демо" для следующего хтмл кода не работает???:

.headwindow {
background-color: #03F;
height: 20px;
width: auto;
}

div класс="headwindow" онКлик="mouseShowHandler()" /div

форма
инпут id="mouseX" type="text"
инпут id="mouseY" type="text"
/форма

Проверял алертом, обработка скрипта слетает после:if (e.pageX == null && e.clientX != null )???подскажите плззз)))


Автор: Гость (не зарегистрирован), дата: 10 ноября, 2009 - 19:59
#permalink

div класс="headwindow" онКлик="mouseShowHandler()" /div
в этой строчке mouseShowHandler() введен без параметра, а в демо который ты взял сверху этот параметр есть, обрати внимание на определение function mouseShowHandler(e)


Автор: AraGnom, дата: 11 ноября, 2009 - 19:27
#permalink

во первых, что ты предлагаешь туда передать, а во вторых в функции обрабатывается передаваемое событие, и если оно не определено то определяется. здесь причина в кросбраузерности, т.к. в IE и Opera все работает норм, а в firefox - нет


Автор: bga (не зарегистрирован), дата: 15 ноября, 2009 - 21:12
#permalink

хочу уточнить что в IE window.event является readonly объектом и по этому чтобы код работал корректно нужно клонировать window.event с помощью встроенной IE функции var e=document.createEventObject(window.event)


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2010 - 23:53
#permalink

А в него никто ничего и не пишет.


Автор: Gera (не зарегистрирован), дата: 20 ноября, 2009 - 16:46
#permalink

Если у вас есть окно 500x500, и мышь находится в центре, то pageX и pageY будут оба равны 250. Если вы затем проскроллируете на 250 пикселей вниз, pageY станет равным 750.

250+250 = 750?


Автор: aH6y, дата: 18 июля, 2010 - 12:29
#permalink

pageY = 750 если курсор будет в самом низу окна.
а если по середине т.к. мы скролл крутим, то сдвинеться на 250 px итого 500px

учи математику...


Автор: Гость (не зарегистрирован), дата: 15 июля, 2013 - 13:24
#permalink

В том то и дело что мы скролим колёсиком а не двигаем мышку автор просто ошибся. 500 там будет pageY


Автор: Александр88 (не зарегистрирован), дата: 8 декабря, 2009 - 19:07
#permalink

А есть ли возможность передать событие родительскому элементу?

Например, есть обработчик события для параграфа в диве (на моуздаун). И дивов таких два. Могу ли я из этого обработчика узнать в каком диве параграф, на который щелкнули?


Автор: Леонид Розенблюм (не зарегистрирован), дата: 16 января, 2010 - 18:37
#permalink

В этом обработчике можно взять target (srcElement).parentNode.
Или навесить обработчики на сами дивы а не на параграфы.


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2009 - 15:33
#permalink

Автору респект


Автор: mauser (не зарегистрирован), дата: 16 декабря, 2009 - 01:28
#permalink

Столкнулся с тем, что relatedTarget или toElement не хотят работать в FF. Есть функция, вызываемая по onMouseOut с ячейки

function menu_out_main (){
var objTo = window.event.toElement
alert(objTo);
}

В IE и Opera алерт появляется, в FF же - ноль реакции. Кто-нибудь знает, в чём дело?


Автор: B@rmaley.e><e (не зарегистрирован), дата: 16 декабря, 2009 - 13:49
#permalink

relatedTarget в FF работает, toElement – нет.
Только нету у лисы event'а в глобальном пространстве имен. event передается первым аргументом функции-слушателю события.

document.getElementById('mBox').addEventListener('mouseover', function (event){
		var objTo = (event||window.event).relatedTarget
		alert(objTo);
	}, false);

Или, если задавать в коде страницы (Хоть это и не очень хорошо)

...<td onmouseover="eventListener(event)">...
function eventListener(event){
	var objTo = (event||window.event).relatedTarget
	alert(objTo);
}

P.S. Не уверен, насчет поддержки ослом event'а через инлайновое задание ф-ии. Если будут проблемы, попробуйте приписать var event; перед вызовом ф-ии.


Автор: Zander (не зарегистрирован), дата: 29 декабря, 2009 - 03:25
#permalink

А может кто подскажет как скрипту определить что окно прокручено? Или хоть в какую сторону копать нужно?
Задача стоит такая:
Есть шапка с определённым размером и есть блок под шапокой, вот при вертикальной прокрутке нужно что бы блок сначала ехал за шапкой, а потом уже висел под верхом окна броузера. Я где то видел такое реализованное но ессно вспомнить нимагу(((


Автор: Гость (не зарегистрирован), дата: 30 декабря, 2009 - 07:52
#permalink
function getBodyScrollTop()
{
  return self.pageYOffset || (document.documentElement && document.documentElement.scrollTop) || (document.body && document.body.scrollTop);
} // (c) tigir.com

Функция возвращает значение, насколько прокручен документ.


Автор: Гость (не зарегистрирован), дата: 24 января, 2010 - 07:05
#permalink

Как я рад, это то что надо!!!


Автор: Кошка (не зарегистрирован), дата: 26 января, 2010 - 16:52
#permalink

Здравствуйте у меня следующая проблемка.
Нужно организовать поиск по массиву так, как реализован поиск в яндексе.
Т.е есть некий массив $mas (этот массив формируется в php-коде);

На html-форме есть текстовое поле ввода
При начале ввода текста c клавиатуры в это поле, т.е. при срабатывании события onkeyup (насколько я понимаю), под текстовым полем ввода должна появляться текстовая область ввода

В которую должны выводиться элементы из массива $mas, начинающиеся с символов, введённых в текстовом поле Pole, причем элементы массива выводятся с новой строки.
Пользователь должен иметь возможность выбрать из предложенных элементов тот, что ему нужен. И по клику мышкой выбранный элемент должен появиться в поле Pole, а текстовая область TextOblast исчезнуть, т.е. стать невидимой.

PS это вообще реально сделать с помощью JavaScript?


Автор: Гость (не зарегистрирован), дата: 13 апреля, 2010 - 23:57
#permalink

Да


Автор: Jourando (не зарегистрирован), дата: 29 июня, 2010 - 12:49
#permalink

Кошка, открываем Ajax и внимательно читаем (если массив берется с сервера... про то что массив с сервера предполагаю по упоминанию PHP)


Автор: thunder2, дата: 25 февраля, 2010 - 01:17
#permalink

Вставил вот этот код

function mouseShowHandler(e){
e = e || window.event

if (e.pageX == null && e.clientX != null ) {
var html = document.documentElement
var body = document.body

e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
}

document.getElementById('mouseX').value = e.pageX
document.getElementById('mouseY').value = e.pageY
}
на страницу. И странное дело: в ФФ и пр. код работает, а в ИЕ ругается на if (e.pageX == null && e.clientX != null ). Хотя на странице этого сайта этот код работает нормально. Естественно этот код поместил в функцию, а функцию присвоил собитию onckick элемента.
Чё может быть ?


Автор: Delfi, дата: 22 мая, 2010 - 15:21
#permalink

При вызове функции передавался event? Не уверен, но причина может быть в этом...


Автор: kill3rl88p (не зарегистрирован), дата: 9 марта, 2010 - 20:22
#permalink

Подскажите как лучше всего реализовать следующую штуку:
на документе только одна большая таблица, нужно реализовать "выделение" ячеек:
нажимаем кнопку мыши на первой, тащим вниз, отпускаем. При этом "выделенные" области как-нибудь выделяются (например фон у них становится темнее). Тут еще появляется одна проблема - стандартное выделение, которое делает браузер - возможо ли его как нибудь убрать или скрыть?


Автор: Гость (не зарегистрирован), дата: 14 апреля, 2010 - 00:06
#permalink

Сводится к геометрической задаче на определение того, перекрывает ли некий прямоугольник массив других прямоугольников. "Некий" прямоугольник определяется точкой, где произошло событие маусдаун, и точкой, где произошло событие маусап.

От выделения можно избавиться.


Автор: A1eX (не зарегистрирован), дата: 16 марта, 2010 - 23:34
#permalink

Подскажите пожалуйста,как узнать в какую сторону был прокручен документ,
т.е. какое событие сработало: scrollTop или scrollLeft и можно ли узнать на сколько пикселей был прокручен документ?


Автор: Гость (не зарегистрирован), дата: 14 апреля, 2010 - 00:08
#permalink

Автор: Гость (не зарегистрирован), дата: 14 апреля, 2010 - 00:09
#permalink

См. на 5 постов 1-го уровня выше.


Автор: Andrew.R (не зарегистрирован), дата: 23 марта, 2010 - 00:07
#permalink

Подскажите в чем ошибка данного кода для FF (срабатывает через раз), для IE все нормально.
// определен обработчик для всего документа
document.onmouseover = setupEffect;
document.onmouseout = cleanupEffect;
// функции обработки, кроссплатформенные
function setupEffect(event) {
var event = event || window.event;
var relTag = event.relatedTarget || event.toElement;
selmenu(relTag) }
function cleanupEffect(event) {
var event = event || window.event;
var relTag = event.relatedTarget || event.fromElement;
selmenu(relTag)}
// базовый обработчик
function selmenu(src) {
while ("HTML" != src.tagName) {
< текст обработчики >
}
И вот тут то как раз в FF пишет что src не определен. Хотя если поводить мышью по странице иногда сюда поступает событие. Самое интересное если отключить одну из двух исходных функциф (cleanupEffect или setupEffect) то в selmenu всегда передается src без ошибок.
В чем тут глюк в FF?
p.s. вообще FF странно работает в отличие от IE (даже старых версий)


Автор: Гость (не зарегистрирован), дата: 25 марта, 2010 - 00:49
#permalink

Может быть:

document.onmouseover = setupEffect();
document.onmouseout = cleanupEffect();

или вообще:

document.onmouseover = function(){setupEffect()}
document.onmouseout = function(){cleanupEffect()}


Автор: Гость (не зарегистрирован), дата: 25 марта, 2010 - 00:55
#permalink

Также можно попробовать перехватывать события не из document, а из document.body


Автор: Гость (не зарегистрирован), дата: 14 апреля, 2010 - 00:13
#permalink

Не надо так пробовать


Автор: Гость (не зарегистрирован), дата: 25 марта, 2010 - 01:02
#permalink

Ещё чего-то в памяти всплывает, что в FF event как особенно передаётся, типа:

document.onmouseover = setupEffect(event); // или setupEffect(), а event автоматом передаётся по значению в переменную "e", по экспериментируйте
document.onmouseout = cleanupEffect(event); // или cleanupEffect()

function cleanupEffect(e) {
...
}

function setupEffect(e) {
...
}


Автор: max5600 (не зарегистрирован), дата: 10 мая, 2010 - 15:04
#permalink

Сделайте так, чтобы можно было копировать код, представленный на ваших страницах, без 01 02 03 04 и так далее.


Автор: Delfi, дата: 22 мая, 2010 - 15:22
#permalink

Там есть кнопка для этого


Автор: X000R (не зарегистрирован), дата: 14 июля, 2010 - 17:26
#permalink

Была проблема с фоксом. В функции аналогичной mouseShowHandler() он упорно твердил что e=undefined. По моему автор не указал что 'e' объект временный !
И считать координаты надо не отходя от кассы.

var mCur;

window.onmousemove=function(e)
				{
					mCur = mousePageXY(e); 
				}

			function mousePageXY(e)
				{
  				var x = 0, y = 0;
				if (!e) e = window.event;

  					if (e.pageX || e.pageY)
  					{
    				x = e.pageX;
    				y = e.pageY;
  					}
  					else if (e.clientX || e.clientY)
  					{
    				x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
    				y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
  					}
				return {"x":x, "y":y};
				}

таким образом текущие координаты будут доступны из любого места кода в любое время, как свойсва объекта mCur: mCur.x , mCur.y


Автор: Wayne (не зарегистрирован), дата: 13 августа, 2011 - 10:17
#permalink

Вот рабочий вариант данного сценария:
function mousePageXY(e)
{
var x = 0;
var y = 0;
if (!e) e = window.event;
if (e.pageX || e.pageY)
{
x = e.pageX;
y = e.pageY;
}
else if (e.clientX || e.clientY)
{
x = e.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft) - document.documentElement.clientLeft;
y = e.clientY + (document.documentElement.scrollTop || document.body.scrollTop) - document.documentElement.clientTop;
}
return {"x":x, "y":y};
}

document.onclick = function(e)
{
var MouseCoords = mousePageXY(e);
document.getElementById('CursorX').value = MouseCoords.x;
document.getElementById('CursorY').value = MouseCoords.y;
}


Автор: Гость (не зарегистрирован), дата: 4 августа, 2010 - 14:11
#permalink

Как отследить событие изменения текстового поля при автоматическом заполнении из выпадающего списка ранее вводимых значений сохраненных браузером (FF3)?
onkeyup - при ручном вводе
onchange - только после смене фокуса с этого элемента
...


Автор: Glinkz, дата: 5 января, 2011 - 12:27
#permalink

по ходу прочтения статьи навязался вопросик:
есть у меня таблица, в которой есть несколько ячеек.
какой обработчик надо повешать на таблицу, что бы при клике на один из элементов, которые она содержит, я мог получить id этого элемента?


Автор: Jeer, дата: 23 января, 2011 - 15:59
#permalink

Ребят, сколько ни ковыряю, что-то не могу разобрать. Можно ли самому создать такое событие, которое устанавливает значения ClientX/ClientY (pageX/pageY), а не просто получает их? Подскажите, для примера, функцию, автоматизирующую некоторое перетаскивание:
1. Устанавливаются заданные координаты Х,Y (150, 250)
2. Происходит нажатие левой кнопки мыши
3. Устанавливаются другие координаты (200,300)
4. Происходит отпускание кнопки
Это бы всё расставило на свои места, заранее благодарю.


Автор: exec, дата: 24 января, 2011 - 15:11
#permalink

Полезно было бы добавить, что в Safari в event.target может попадаться текстовая нода, поэтому надо делать проверку:

if (target.nodeType === 3)
	target = target.parentNode;

Автор: Любопытствующий (не зарегистрирован), дата: 31 января, 2011 - 22:24
#permalink

Умно!
А как программно подвинуть курсор мыши?
Второй вопрос как программно нажать кнопки на мыши?
можно какиенибудь не затейливые примерчики .


Автор: Гость (не зарегистрирован), дата: 8 июля, 2011 - 14:36
#permalink

просто
invoke mouse_event, 7h, xMove, yMove, NULL, NULL
Но не в браузере и не в джаве)


Автор: Grundiss (не зарегистрирован), дата: 4 февраля, 2011 - 06:03
#permalink

А как в ИЕ получить значение позиции курсора мыши относительно элемента? В FF для этих целей используется свойство event.layerX, а в ИЕ?


Автор: Kapillar, дата: 6 февраля, 2011 - 19:32
#permalink

Тип события можно получить, используя кроссбраузерное свойство type объекта событие.

1 function getEventType(e) {
2 if (!e) e = window.event;
3 alert(e.type);
4 }
Данный код в действии (в примере обрабатываются события click и mouseout):
недопонял, как этот код обрабатывает событие, ведь так тоже обработка произойдет:
/ input value="определение" onmouseout="alert('mouseout');" onclick="alert('click');" type="button" /


Автор: Алексеище (не зарегистрирован), дата: 2 марта, 2011 - 14:31
#permalink

Ваш последний пример, как я понял, перехватывает событие mousemove, по этому он становится не совсем наглядным для демонстрации PageX/PageY при скроллинге и недвижимой мышке.


Автор: Mixail (не зарегистрирован), дата: 30 марта, 2011 - 12:54
#permalink
function mouseShowHandler(e){
		e = e || window.event

		if (e.pageX == null && e.clientX != null ) { 
			var html = document.documentElement
			var body = document.body
		
			e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0)
			e.pageY = e.clientY + (html && html.scrollTop || body && body.scrollTop || 0) - (html.clientTop || 0)
		}

		
		document.getElementById('mouseX').value = e.pageX
		document.getElementById('mouseY').value = e.pageY
	}

Автор забыть указать Важный момент, что он использовал метод вызова на jq

$(document).mousemove(mouseShowHandler);

Если кому интересно без jq, то делается это следующим образом в body прописывается функция onmousemove.

<body onmousemove="mouseShowHandler(event);">

Автор: Sweet, дата: 30 марта, 2011 - 18:19
#permalink

Что за бред? Причем тут вообще jQuery???Blink Попытка съумничать не засчитана!!!


Автор: Mixail (не зарегистрирован), дата: 30 марта, 2011 - 12:55
#permalink

забыл*


Автор: Гость (не зарегистрирован), дата: 8 апреля, 2012 - 22:43
#permalink

Необходимо уточнение: для Firefox в обязательно прописать

onmousemove="mouseShowHandler(event);"

Автор: Гость (не зарегистрирован), дата: 10 апреля, 2011 - 04:34
#permalink

На FireFox 4 на сдешней странице всё нормально, а отдельно код с определением места курсора не идет. Почему и как исправить?


Автор: Гость (не зарегистрирован), дата: 19 апреля, 2011 - 16:05
#permalink

А зачем дополнительно проверять на существование html в
e.pageX = e.clientX + (html && html.scrollLeft || body && body.scrollLeft || 0) - (html.clientLeft || 0);?
Ведь html всегда существует, а в случае отсутствие у него свойства scrollLeft и так будет выдаваться undefined, т.е. значение false?
Тем более, что дальше в этой же строчке вводим проверяем свойство html.clientLeft без проверки на существование html?


Автор: kent666, дата: 29 апреля, 2011 - 12:25
#permalink

Здравствуйте!
Можете объяснить принцип работы переменной this
Как я понимаю это что-то на подобии event. Он будет вноситься в функцию первым аргументом или вторым если в аргументах есть event.
А далее можно будет не прописывать
var X=document.getElementById...
а просто
this.style.color... например для смены цвета объекта на котором сработал обработчик


Автор: gyrdym, дата: 29 июля, 2011 - 14:17
#permalink

this это указатель на объект, вызвавший событие, передавать в качестве параметра его не обязательно


Автор: Wayne (не зарегистрирован), дата: 13 августа, 2011 - 02:53
#permalink

function getEventType(e) {
if (!e) e = window.event;
alert(e.type);
}

Автор, пожалуйста, будь так добр пояснить сий "трюк". Что за чёртова буква "e"? Как это вообще работает? Почему в финальном демо при назначение функции обработчиком события она работает? Как? Откуда она берёт параметр e для своей работы, если эта функция нигде не вызывается и никто ей не передаёт параметров?
Если это особенность вызова функции без параметров, тогда как в её описание/определение аргументы всё же указаны, то следовало бы указать эту деталь.

Как я понял. А я ничерта не понял как это работает! Финальное демо обрабатывает событие. Когда функция назначается обработчиком события onmousemove, то она при исполнение получает вместо e - это самое событие onmousemove. Видимо, это особенность работы функций в JS. И как это понимать? Как всё это происходит??????? Где почитать?

У меня вообще сложилось впечатление, что в данной статье использовался кривой подход к объектному программированию. Вроде как об ООП речи не идёт, но в то же время используются принципы ООП.

Простите мне мою горячность, но статья без пояснения вышеописанной детали бред. Я прочитал всю статью. Рылся в интернете. И так за 2 дня не понял весь механизм работы демо в финале статьи!!! Я в ярости.


Автор: B@rmaley.e><e, дата: 13 августа, 2011 - 09:53
#permalink

Я прочитал всю статью. Рылся в интернете. И так за 2 дня не понял весь механизм работы демо в финале статьи!

А Вы введение в события прочитали?


Автор: Wayne, дата: 5 сентября, 2011 - 01:05
#permalink

Читал. Но я там не нашёл нужной для понимания детали. До неё пришлось доходить самому. А в статье упоминается это лишь вскользь. Ключевым оказалось то, что event - не простая переменная/имя. При появление этого "слова" происходит передача объекта события в функцию. Так что не совсем точным оказалось определение о понятие объекта события и о том, как оно ловиться функцией.
Также, всё зависит ещё и от способа назначения обработчика.

P.S. До конца я ещё не понял весь механизм. Поэтому мои слова тут вполне могут быть ошибочными ещё.


Автор: Wayne (не зарегистрирован), дата: 13 августа, 2011 - 02:59
#permalink

Вот ещё одна мега промашка.

"Координаты курсора мыши относительно окна находятся в стандартных свойствах clientX/clientY. Они одинаково поддерживается всеми браузерами."

"Как правило, при обработке события нужна позиция мыши относительно документа, учитывающая прокрутку. Стандарт W3C предоставляет для этого свойство pageX/pageY."

ииии??? и что же такое на самом деле pageX/clientX?? Что ещё за стандартные свойства? Сколько уже скриптов писал, ни разу в жизни не сталкивался с общим однозначным понятием для всех JS под названием "стандартный свойства". Ладно. Не буду негодовать.

Я хочу через alert узнать x координату своей мыши относительно окна. Например, используя СТАНДАРТНОЕ СВОЙСТВО clientX. К жопе чего мне нужно приписать .clientX?????
alert(xxx.clientX)
Что должно стоять на месте "xxx", чтобы я в результате срабатывания alert получил искомую свою координату мыши?

Спасибо, что терпеливо прочитали мои возмущения. Пожалуйста. Обойдетесь без бессмысленных ответов. Я перечитал все комментарии к этой статье. Из низ 90% бессмысленны и не отвечают на поставленные вопросы полноценным образом.


Автор: B@rmaley.e><e, дата: 13 августа, 2011 - 09:31
#permalink

К жопе чего мне нужно приписать .clientX?

Название страницы читали? Я Вам его даже напомню: "Свойства объекта событие". Путем нетрудных умозаключений получаем, что clientX - свойство объекта "событие". В первом же пункте показан пример работы с этим объектом.

и что же такое на самом деле pageX/clientX?

А Вы статью читали?

Координаты курсора мыши относительно окна находятся в стандартных свойствах clientX/clientY

Как правило, при обработке события нужна позиция мыши относительно документа, учитывающая прокрутку. Стандарт W3C предоставляет для этого свойство pageX/pageY.

Что ещё за стандартные свойства?

Свойства, описанные стандартом.


Автор: Wayne (не зарегистрирован), дата: 13 августа, 2011 - 09:46
#permalink

Спасибо за гениальный ответ. Всегда восхищался людьми, которые отвечают на вопросы не отвечая на вопросы.
P.S. Всё я читал. Не волнуйтесь. Я трудолюбивый и очень дотошный.


Автор: Wayne (не зарегистрирован), дата: 13 августа, 2011 - 09:47
#permalink

А вот вы, мой комментарий чуть выше, не читали.


Автор: B@rmaley.e><e, дата: 13 августа, 2011 - 11:37
#permalink

Да, не читал, поскольку отвечаю на комментарии в порядке их вывода в блоке "Последние комментарии". И я как-то считаю, что если у человека есть вопросы, то он вполне может уместить их в одном комментарии, и поэтому не счел нужным читать предыдущие.


Автор: Гость (не зарегистрирован), дата: 17 февраля, 2012 - 20:41
#permalink

Доброго времени суток! может вы сможете мне помочь? мне надо чтобы вот в этом тексте

$(function () {

function makeTabs(contId) {
var tabContainers = $('#'+contId+' div.tabs > div');
tabContainers.hide().filter(':ID').show();

$('#'+contId+' div.tabs ul.tabNavigation a').click(function () {
tabContainers.hide();
tabContainers.filter(this.hash).show();
$('#'+contId+' div.tabs ul.tabNavigation a').removeClass('selected');
$(this).addClass('selected');
return false;
}).filter(':ID').click();
}

});

ID было не названием (сейчас ид (в ксс) материала у меня работает как просто название) а конкретным, уникальным номером задающим, свое, уникальное название-номер для таба.
Если не сложно конечно...


Автор: вафавафвафвафывафыафыафы (не зарегистрирован), дата: 23 февраля, 2012 - 14:23
#permalink

лучше б вы показали как отслеживать положение экрана относительно документа


Автор: Гость (не зарегистрирован), дата: 28 февраля, 2012 - 15:22
#permalink

Совсем ничего не получается, устал....

координаты определяются и в ИЕ и в Опере, но только не в FF Sad((((

помогите, пожалуйста....что я не так делаю?

вот тестовая страница: killarney.ru/event-test2.htm


Автор: Гость (не зарегистрирован), дата: 8 апреля, 2012 - 22:45
#permalink

Для файрфокса тег body должен выглядеть так:

<body onmousemove="mouseShowHandler(event);>

(event) - обязательно


Автор: Малик (не зарегистрирован), дата: 8 августа, 2012 - 19:53
#permalink

А можно получить координаты относительно какого-нибудь блока?


Автор: Александр 60 лет (не зарегистрирован), дата: 2 ноября, 2012 - 11:42
#permalink

Уважаемые !! помогите пожалуйста !!
как положить координаты ,клик .и двойной клик мышки в текстовый файл ?
бьюсь пятые сутки ...помогите !!


Автор: Anemic (не зарегистрирован), дата: 2 ноября, 2012 - 20:13
#permalink

Для этого Вам нужно воспользоватся AJAX запросом, которым Вы передаете на серверную сторону координаты, и уже php на серверной стороне запишет их в нужный файл.


Автор: morfeus (не зарегистрирован), дата: 4 декабря, 2012 - 14:30
#permalink

Не могу понять почему в Опере 12 нажатие на среднюю кнопку (колесико) не вызывает срабатывания onmousedown/ что за фича такая? И можно это поправить? Ответьте, уважаемые знатоки Java Script.


Автор: Mikee, дата: 13 октября, 2013 - 08:00
#permalink

Друзья, с clientX и clientY не все так радужно, как описано в статье.
Они одинаково поддерживается всеми браузерами.

Это не правда. Если быть точным, это не для всех событий правда.
Например, мне надо было отследить положение курсора во время скроллинга. Мне нужно только свойство clientX. Так вот у события onscroll этого свойства в FF не обнаружилось. И на планшетном (сенсорном) Chrome, хотя на виндузовом Chrome все работает.


Автор: ЖИРАФ (не зарегистрирован), дата: 9 января, 2014 - 14:59
#permalink

Тема статьи "Свойства объекта событие", но, почему-то, ничего не сказано, например, о событии "onkeypress". =( грустно...


Автор: alexan0308, дата: 5 августа, 2014 - 16:05
#permalink

Хорошая статья, спасибо =) Мне очень пригодилось при написании событий клика мышью по объектам.


Автор: new_developer, дата: 6 августа, 2014 - 22:02
#permalink

if (!e.relatedTarget && e.fromElement) {
e.relatedTarget = (e.fromElement==e.target) ? e.toElement : e.fromElement
}

кто может разшифровать эту строку?)


Автор: Sahaviev, дата: 22 августа, 2014 - 08:11
#permalink

Кроссбраузерный(т.к. IE работает не по стандартам W3C) способ получения элемента на который перешел курсор мыши при событии mouseout.

Если не понимаешь саму строку, тогда учи краткую запись If.


Автор: Гость (не зарегистрирован), дата: 7 декабря, 2014 - 21:02
#permalink

Мышка-клавиатура-загрузка_страницы это чудно. Но что насчёт событий tap&swipe? Заранее благодарен.


Автор: Александр Волошин (не зарегистрирован), дата: 4 сентября, 2015 - 13:16
#permalink

Здравствуйте, не могу понять как на Firefox у вас вызывается событие click даже когда кликаю средней кнопкой мыши.


Автор: Гость (не зарегистрирован), дата: 23 июня, 2016 - 15:19
#permalink

А если мне нужно вторым аргументом callback передать, как это сделать не трогая event который идет первым аргументом?


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2016 - 17:55
#permalink

Люди, помогите с такой проблемой. Есть графический объект, передвигающийся за курсором мыши. Но мне необходимо знать, куда мышь в данный момент передвигается: влево или вправо, чтобы менять этот графический объект в зависимости стороны передвижения мыши. Перекопал инет. Подобной задачи никто не решал.


Автор: Гость (не зарегистрирован), дата: 15 декабря, 2016 - 07:07
#permalink

А маргинами не пробовал?


Автор: Цифровой (не зарегистрирован), дата: 20 ноября, 2017 - 15:50
#permalink

Не получается отследить клики по дочерним элементам целевого элемента


Автор: Гость (не зарегистрирован), дата: 12 июня, 2018 - 21:18
#permalink

найс, то что нужно


Автор: Разработчик (не зарегистрирован), дата: 12 июня, 2018 - 21:21
#permalink

структура кода важна.. Незаменимая помощь в разработке любых программ и сайтов. То, что нужно!


Автор: Гость (не зарегистрирован), дата: 13 декабря, 2019 - 05:59
#permalink

Автор: John lead (не зарегистрирован), дата: 8 декабря, 2021 - 18:01
#permalink

Regards,

Thank you for sharing; I discovered a lot of useful stuff here. A fantastic article that is both appreciative and useful.


boundary survey


Автор: Гость (не зарегистрирован), дата: 3 июля, 2023 - 08:05
#permalink

The depth of my gratitude knows no bounds, as your generosity, whether it be in the form of time, resources, or kind words, has Pokemon Infinite Fusion left an indelible mark on my heart and has shown me the power of selflessness and empathy.


Автор: Ufa1688 (не зарегистрирован), дата: 14 июня, 2022 - 12:29
#permalink

Israel withdrew ufa1688 from Gaza in 2005 but, ufabet เข้า สู่ระบบ with the help of Egypt, clamps 1688.com down on the borders of the ทางเข้า Ufa 1688 enclave now governed by แทงบอลออนไลน์ Hamas Islamists. Dream Gaming Palestinian Big gamingauthorities have limited self-rule ลิงค์รับทรัพย์ in the West Bank บาคาร่าwhich is dotted หวยออนไลน์with Israeli settlements.


Автор: kiarausa (не зарегистрирован), дата: 1 августа, 2022 - 04:58
#permalink

The information you shared is very accurate, it gives me the knowledge that I need to learn. Thank you for sharing this useful information. the impossible quiz


Автор: Carmen Shelton (не зарегистрирован), дата: 5 сентября, 2022 - 10:36
#permalink

Driving a sports car to the limit while applying the brake and sending the vehicle into a controlled skid will demonstrate the wonders of drift hunters


Автор: Гость (не зарегистрирован), дата: 10 октября, 2022 - 10:50
#permalink

Putting a sports car through its paces by driving it to its limits before slamming the brakes and sending it into a controlled skid is a great way to show off the benefits of basketball stars


Автор: Гость (не зарегистрирован), дата: 10 октября, 2022 - 12:30
#permalink

slope game I can see a lot of useful information. Very interesting!


Автор: Celine Dion (не зарегистрирован), дата: 26 октября, 2022 - 11:25
#permalink

I don't want to commit the same error that I did previously. I was motivated to create the fantastic and trustworthy mapquest driving directions app. I stopped worrying about it. I can travel to any place now that I have this pal.


Автор: amityusa, дата: 15 ноября, 2022 - 07:43
#permalink

drift boss is a perfect choice when you want to play a racing game.


Автор: Гость (не зарегистрирован), дата: 31 января, 2023 - 06:12
#permalink

Get away from Baldi's academy once more in the improved sequel to the classic baldi's basics! Gather the seven notebooks without being detected using cunning and planning.


Автор: Гость (не зарегистрирован), дата: 31 января, 2023 - 06:12
#permalink

Get away from Baldi's academy once more in the improved sequel to the classic baldi's basics! Gather the seven notebooks without being detected using cunning and planning.


Автор: James Morgan (не зарегистрирован), дата: 20 марта, 2023 - 20:56
#permalink

I hope you will share such type of impressive contents again with us so that we can utilize it and get more advantage. custom woodworking near me, woodworking shops near me, woodworking stores near me


Автор: Гость (не зарегистрирован), дата: 19 мая, 2023 - 10:09
#permalink

I've started using a task shell shockers management app and it's helped me stay organized and prioritize my work


Автор: career change counseling (не зарегистрирован), дата: 25 мая, 2023 - 07:01
#permalink

The article provides comprehensive explanations and examples of commonly used event properties like target, currentTarget, and type, which enable developers to access important information about the events. Mastering these properties will undoubtedly enhance the ability to create dynamic and interactive web applications using JavaScript.


Автор: Гость (не зарегистрирован), дата: 5 июня, 2023 - 04:59
#permalink

Believe me, you are amazing because you use only a few words to inspire others and that is an incredible talent. rankdle


Автор: whackself (не зарегистрирован), дата: 26 июня, 2023 - 05:24
#permalink

Mastering target, current, and type attributes gives access to important information papa's freezeria


Автор: Гость (не зарегистрирован), дата: 17 июля, 2023 - 11:03
#permalink

Amazing post thanks for sharing
click here


Автор: karausa (не зарегистрирован), дата: 27 июля, 2023 - 11:43
#permalink

I just wanted to say that your article is great and I really like the information you share. The Password Game


Автор: betflixsupervip (не зарегистрирован), дата: 31 июля, 2023 - 15:54
#permalink

betflik vip กติกา บาคาร่า และวิธีเล่นเกมไพ่ยอดนิยม เข้าใจง่าย ทำเงินดีที่สุด


Автор: Karina Cotton (не зарегистрирован), дата: 2 августа, 2023 - 11:19
#permalink

I just wanted to say how much I enjoyed your essay. doodle jump


Автор: hipohaha (не зарегистрирован), дата: 24 августа, 2023 - 07:16
#permalink

paper minecraft has become one of the most popular games of all time. However, under the "domination" of Microsoft, many gamers still do not understand why Minecraft Part 2 has not been released yet.


Автор: Гость (не зарегистрирован), дата: 31 августа, 2023 - 12:20
#permalink

If you're looking for egg-citement, look no further than shell shockers – the game that's cracking good fun!


Автор: Nanasi (не зарегистрирован), дата: 9 октября, 2023 - 07:16
#permalink

dino game is a simple running game where you control a T-Rex and try to avoid obstacles for as long as you can. dinosaur game was first built into Google Chrome in 2014, where it could be played without an internet link.


Автор: Jacobjsdhfg (не зарегистрирован), дата: 9 ноября, 2023 - 10:33
#permalink

I am incredibly grateful for your generosity, whether it was shown through your time, resources, or Drive Mad 2 kind words.


Автор: jack dni (не зарегистрирован), дата: 14 декабря, 2023 - 00:44
#permalink

مرجع اصلی دانلود کتاب

دانلود بوک


Автор: rafterpituitary (не зарегистрирован), дата: 14 декабря, 2023 - 10:39
#permalink

Just wanted to let you know that I think your essay basket random is fantastic, and that I really appreciate the information that you provide.


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2023 - 12:47
#permalink

Once you've done customizing the egg shooter, join a random server and compete with players around the world in real time, or create your own server and invite your friends to join shell shockers!


Автор: Гость (не зарегистрирован), дата: 14 декабря, 2023 - 17:50
#permalink

Achromatic KWGT’s theme revolves around white and various shades of gray.

Achromatic KWGT Apk


Автор: Гость (не зарегистрирован), дата: 22 декабря, 2023 - 12:32
#permalink

Unlock Your Gaming Potential: Unblocked Games 66 - Play, Explore, Conquer!


Автор: Гость (не зарегистрирован), дата: 27 декабря, 2023 - 11:36
#permalink

The snow-covered mountains provide a Snow Rider 3D picturesque backdrop, and the immersive gameplay ensures that players feel the rush of wind as they speed downhill. The realistic physics of the sleigh add to the authenticity, making every turn and jump a dynamic and engaging experience.


Автор: prodentim (не зарегистрирован), дата: 9 марта, 2024 - 12:13
#permalink

Kudos to the author for igniting prodentim such an engaging discussion.


Автор: Гость (не зарегистрирован), дата: 25 марта, 2024 - 11:16
#permalink

Infinite Craft invites you to embark on a journey of discovery and creation in a game that defies expectations. Explore a universe of endless possibilities and unlock the secrets of elemental fusion


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 1 =
Введите результат. Например, для 1+3, введите 4.
 
Текущий раздел
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum