$('#myTable').click(function(e) {
var clicked = $(e.target);
clicked.css('background', 'red');
});
Может кто-то объяснить мне и объяснить, почему e нужен, и что он на самом деле делает.
Использование e
является сокращением для события
. Вы можете передать любое имя переменной, какое пожелаете.
// would work just the same
$('#myTable').click(function(anyothername) {
var clicked = $(anyothername.target);
});
Вы можете узнать больше об обработке событий jQuery .
формальный параметр функции. jQuery передаст объект события при вызове функции. Это используется для определения цели. Как отмечено в документации , jQuery всегда передает объект события, даже если браузер (например, IE) этого не делает.
В этом случае цель сообщает вам, по какому элементу щелкнули изначально.
Одно из преимуществ наличия 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
});
Таким образом, наличие этого параметра позволяет, среди прочего, описанным в других ответах, предотвратить поведение выбранного элемента по умолчанию.
Надеюсь, это поможет!