упаковка функции в качестве параметра jQuery - PullRequest
0 голосов
/ 08 марта 2012

Я создаю автозаполнение для своего сайта, когда наткнулся на этот стиль кода здания:

$(function() {

    function log( message ) {
        $( "<div/>" ).text( message ).prependTo( "#log" );
        $( "#log" ).scrollTop( 0 );
    }

    $(element).autocomplete(....

    //more code
});

Я знаю о замыканиях, "IIFE", но этот для меня новый.

  • что за код "jQuery-wrapped" выше?
  • есть ли какая-то особая причина, по которой я должен это сделать? (Сфера?)
  • Оптимизация, я должен даже сделать это таким образом?

Ответы [ 3 ]

2 голосов
/ 08 марта 2012
  1. $(function() { }); эквивалентно $(document).ready(function() {}); и, как и прежде, выполняется после того, как DOM был готов.

  2. Определение функции внутри означает, что функция доступна только после того, как dom готов выполнить.

  3. $(element).autocomplete(.... просто реализует плагин для селектора, когда DOM готов к выполнению.

Надеюсь, теперь все ясно:)


$(function() { или $(document).ready(function() { не требуется загружать всю страницу, чтобы работать как $(window).load(fn).

1 голос
/ 08 марта 2012

Все в $(function() { } будет выполнено после загрузки DOM.Я предпочитаю использовать $(document).ready(function() { }, потому что это более понятно.

1 голос
/ 08 марта 2012

$(fn) или $(document).ready(fn) Является обработчиком jQuery onload / onDOMContentLoaded.Переданная ему функция выполняется, как только DOM на странице готов.

...