Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

отображает ссылку, которую пользователь может щелкнуть. Если у пользователя отключен JavaScript (почему? Я не знаю), вы хотите, чтобы пользователь перешел к 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
});

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

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

Ответ 3

Я говорю в теории о том, что я не эксперт, но я достиг желаемого результата, используя его маленький (e), который не должен быть e lol

Я понял это. Это способ передачи одного и того же события из одной функции в другую.

Проще говоря. Я хотел сделать навигацию по страницам эластичной функцией прокрутки, однако я хотел, чтобы страница перемещалась с помощью наведения "и" Я хотел, чтобы одна и та же навигация была доступна при определенных условиях. Мне также нужна такая же динамическая навигация от других событий кликов, которые не были ссылками. Чтобы сохранить текущую цель и по-прежнему использовать функцию навигации, мне пришлось установить маленькую (е), потому что jQuery потеряет область $(this) в качестве той же цели функции lol. Вот краткий пример.

function navigate_to_page(e){
var target = $(e.currentTarget).attr('href'); //--This is the same as $(this) but more static to bring out of it scope
    $('html, body').animate({
    'scrollTop':$(target).offset().top-0,
    'scrollLeft': $(target).offset().left-$(window).width()*0.0}, 2000, 'easeOutBounce');
}

Не позволяйте тарабарщице путать вас. Это просто простая анимация прокрутки страницы. Следует обратить внимание на e.currentTarget. e - наша переменная, а currentTarget - эквивалент jQuery для $(this), так что вместе они являются функцией Globular $(this). Теперь я называю это другой функцией с такими условиями

$('#myNavigationDiv a').on('mouseenter', function(e){
    if($(myCondition) === true){
        return false;
        }else{
        navigate_to_page(e);
        }
    });

Посмотрите, как маленький (e) связал все вместе?

Теперь вы можете заменить (e) на (whatteverouant). Вызывая e в обеих функциях, он сопоставляет e.currentTarget, и вы можете применить это к любым подробным конкретным функциям, которые вам нужны, и сэкономить LITERALLY страницы кода lol

Ответ 4

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

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