Нужен дополнительный тег функции?

0

В этом примере кто-то показывает событие jQuery onclick. Мои показания:

$(function() {
    $('.post').on('click', function() {
        SOME STUFF
    });
});

Но что делает первая и последняя линия? если я удаляю строки, он не работает:

$('.post').on('click', function() {
    SOME STUFF
});

Но почему? В связанном примере есть второй комментатор. Он показывает этот путь (без первой/последней строки).

Может кто-нибудь объяснить это?

Теги:

4 ответа

3
Лучший ответ

Это ярлык для $( document).ready(...)

См. Http://api.jquery.com/ready/

Цитирование документа:

Хотя JavaScript предоставляет событие load для выполнения кода при визуализации страницы, это событие не запускается до тех пор, пока все активы, такие как изображения, не будут полностью получены. В большинстве случаев сценарий можно запустить, как только иерархия DOM будет полностью построена. Обработчик, переданный в .ready() должен быть выполнен после того, как DOM готов, поэтому это обычно лучшее место для присоединения всех других обработчиков событий и запуска другого кода jQuery. [...]

Все три следующих синтаксиса эквивалентны:
* $( document).ready( handler )
* $().ready( handler ) (this is not recommended)
* $( handler )

3

Это недостаточно для document.ready. Он ожидает, пока весь документ не будет загружен, и элемент с классом .post можно найти и связать.

Если вы опустите эту часть, функция jQuery не найдет элемент, и ваше событие не будет работать.

0

Первая и последняя строки создают анонимную функцию. В компьютерном программировании анонимная функция - это функция, определенная и, возможно, вызванная, не привязанная к идентификатору.

В примере, здесь используется, чтобы установить приемник событий, который загружается OnLoad страницы.

$(function() {
    $('.something').on('click', function() {
        alert('hello');
        $(this).addClass('classOne');
    });
});
0
$(function(){}); 

это короткая рука jQuery для

$(document).ready(function() {});

который гарантирует, что ваш документ готов к манипуляциям, прежде чем выполнять что-либо в нем. Во многом это похоже на событие window.onready в браузере. См. Документы jQuery . ,

Риск, если вы не оберните свой код jQuery в любой из этих форм функций, заключается в том, что вы будете пытаться манипулировать элементами до того, как они будут созданы браузером. У вашего кода не гарантируется сбой, но вы могли бы, по крайней мере, получить непоследовательное поведение.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню