Каждый раз, когда запускается событие, выполняются все функции, связанные с событием в указанной цели.Возвращаемые значения для этих функций обратного вызова используются для определения, должно ли событие продолжать распространяться.
Существует несколько существенных различий между функцией, вызываемой как часть сценария, и обратным вызовом события:
- jQuery нормализует обратный вызов, чтобы он выполнялся в контексте связанной цели (т. Е.
this
относится к связанному элементу, которому было назначено событие) - параметры обратного вызова предоставляются автоматически
- события выполняются асинхронно при запуске события, поэтому могут быть некоторые непреднамеренные последствия со значениями переменных (индексы цикла, такие как
i
, могут иметь свое окончательное значение к моменту вызова обратного вызова)
Поскольку обратные вызовы - это просто функции, они могут делать все, что может делать любая другая функция, включая вызов trigger
.Будьте осторожны, чтобы не создавать себе бесконечный цикл с рекурсивными вызовами функций для одного и того же события.
Вы не захотите вызывать:
function foo()
{
foo();
}
Аналогично, вы не захотитеЗвоните:
$('#foo').click(function(){
//short form for .trigger('click')
$(this).click();
});