Аргументы события Javascript / jQuery. Я не понимаю, что это за аргумент ‘e’ или делает

#javascript #jquery

#javascript #jquery

Вопрос:

jQuery:

 this.saveButton.click(function (e) {
    scope.saveForm();
});
  

Это очень простая строка jQuery, которая привязывает событие .click() к объекту SaveButton и вызывает функцию saveForm при запуске события.

Когда вызывается это событие, что такое ‘e’? Я не думаю, что он когда-либо использовался.

Комментарии:

1. e — число Эйлера, приблизительно равное 2.7182818284 — оно широко используется в логарифмах и исчислении. Ваш компьютер не знает эту константу, поэтому абсолютно необходимо включить ее во все ваши обработчики событий, иначе вы рискуете взорвать весь Интернет.

2. Оглядываясь назад на мое невежество годы спустя. Бесценно 🙂

Ответ №1:

e может использоваться для получения конкретной информации о щелчке (слева, справа или по центру; координаты нажаты; объект DOM нажат), но в этом конкретном примере кода он не используется.

Смотрите http://api.jquery.com/category/events/event-object / для получения подробной информации о том, что доступно.

Комментарии:

1. Но кто передает аргумент ‘e’? Браузер?

2. По ссылке: The event object is guaranteed to be passed to the event handler.

3. Любой обработчик событий автоматически создает его и передает. Я полагаю, что технически ОС является его создателем. Это часть волшебства.

4. @mblase75: jQuery создает его, и это совсем не волшебство. Исходное событие запускается DOM браузера, jQuery перехватывает и стандартизирует его, а затем вызывает ваши функции обработчика событий.

Ответ №2:

Это объект события. Взгляните на страницу документации здесь:

http://api.jquery.com/click/

Ответ №3:

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

Ответ №4:

e (или любое другое имя, которое вы используете) является Event объектом. Это очень полезно, когда вы, например, хотите определить, где произошло click событие или какая клавиша была нажата на keydown событии.

Вам следует прочитать эту статью об API jQuery.

Пример использования:

 $("#someInput").keydown(function (e) {
  alert(e.which) // alerts the keycode of the pressed key
});