В этом примере кто-то показывает событие jQuery onclick. Мои показания:
$(function() {
$('.post').on('click', function() {
SOME STUFF
});
});
Но что делает первая и последняя линия? если я удаляю строки, он не работает:
$('.post').on('click', function() {
SOME STUFF
});
Но почему? В связанном примере есть второй комментатор. Он показывает этот путь (без первой/последней строки).
Может кто-нибудь объяснить это?
Это ярлык для $( document).ready(...)
См. Http://api.jquery.com/ready/
Цитирование документа:
Хотя JavaScript предоставляет событие
load
для выполнения кода при визуализации страницы, это событие не запускается до тех пор, пока все активы, такие как изображения, не будут полностью получены. В большинстве случаев сценарий можно запустить, как только иерархия DOM будет полностью построена. Обработчик, переданный в.ready()
должен быть выполнен после того, как DOM готов, поэтому это обычно лучшее место для присоединения всех других обработчиков событий и запуска другого кода jQuery. [...]Все три следующих синтаксиса эквивалентны:
*$( document).ready( handler )
*$().ready( handler ) (this is not recommended)
*$( handler )
Это недостаточно для document.ready
. Он ожидает, пока весь документ не будет загружен, и элемент с классом .post
можно найти и связать.
Если вы опустите эту часть, функция jQuery не найдет элемент, и ваше событие не будет работать.
Первая и последняя строки создают анонимную функцию. В компьютерном программировании анонимная функция - это функция, определенная и, возможно, вызванная, не привязанная к идентификатору.
В примере, здесь используется, чтобы установить приемник событий, который загружается OnLoad страницы.
$(function() {
$('.something').on('click', function() {
alert('hello');
$(this).addClass('classOne');
});
});
$(function(){});
это короткая рука jQuery для
$(document).ready(function() {});
который гарантирует, что ваш документ готов к манипуляциям, прежде чем выполнять что-либо в нем. Во многом это похоже на событие window.onready в браузере. См. Документы jQuery . ,
Риск, если вы не оберните свой код jQuery в любой из этих форм функций, заключается в том, что вы будете пытаться манипулировать элементами до того, как они будут созданы браузером. У вашего кода не гарантируется сбой, но вы могли бы, по крайней мере, получить непоследовательное поведение.