jquery / javascript: function (e) {… что такое e? зачем это нужно? что он на самом деле делает / выполняет?

$('#myTable').click(function(e) {
    var clicked = $(e.target);
    clicked.css('background', 'red');
});

Может кто-то объяснить мне и объяснить, почему e нужен, и что он на самом деле делает.

58
задан Yi Jiang 21 August 2010 в 02:45
поделиться

3 ответа

Использование e является сокращением для события . Вы можете передать любое имя переменной, какое пожелаете.

// would work just the same
$('#myTable').click(function(anyothername) {
    var clicked = $(anyothername.target);
});

Вы можете узнать больше об обработке событий jQuery .

66
ответ дан 24 November 2019 в 18:59
поделиться

формальный параметр функции. jQuery передаст объект события при вызове функции. Это используется для определения цели. Как отмечено в документации , jQuery всегда передает объект события, даже если браузер (например, IE) этого не делает.

В этом случае цель сообщает вам, по какому элементу щелкнули изначально.

6
ответ дан 24 November 2019 в 18:59
поделиться

Одно из преимуществ наличия e (объект, вызвавший событие) позволяет предотвратить распространение поведения по умолчанию для определенных элементов. Например:

<a id="navLink" href="http://mysite/someOtherPage.htm">Click For Info</a>

отображает ссылку, которую пользователь может щелкнуть. Если у пользователя отключен JavaScript (почему? I dunno), вы хотите, чтобы пользователь переходил на someOtherPage.htm когда он нажимал на ссылку. Но если у них включен JavaScript, то вы хотите отобразить модальное диалоговое окно и не уходить со страницы. Вы должны справиться с этим, предотвратив поведение по умолчанию привязки/ссылки и отобразив модальный как таковой:

$("#navLink").click(function(e) {
  e.preventDefault();  //this prevents the user from navigating to the someOtherPage.htm
  $("#hiddenDiv").dialog({
    //options
  });  //show the dialog
});

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

Надеюсь, это поможет!

10
ответ дан 24 November 2019 в 18:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: