jQuery ч.1: jQuery(document).ready()

августа 7, 2011  |  Published in ClientSide, JavaScript, jQuery  |  5 Comments

jQuery: jQuery(document).ready()
Поскольку это первая статья о jQuery, позвольте рассказать у ней о том, что же такое jQuery.

jqueryjQuery — это фрреймворк написанный на JavaScript и ориентирован на использование на стороне клиента. Заходя на ваш сайт пользователь скачивает jQuery вместе со всеми вашими скриптами, которые содержатся в отдельных файлах. jQuery необходим для следующих целей:

  • Обеспечить кроссбраузерность вашего JavaScript кода
  • Сократить количество кода, который пишется пользователем за счет готовых решений
  • Предоставить программисту большой и удобный набор селекторов для выборки элементов страницы
  • Предоставить программисту набор стандартных визуальных эффектов для оживления вебстраниц

Для того, чтобы начать использовать jQuery вам достаточно скачать jQuery c . В этом учебнике мы будем использовать jQuery 1.6.2 — последнюю на момент написания учебника. Чтобы включить jQuery в страницу необходимо использовать стандартный способ подключения скриптов:

<script src="jquery-1.6.2.min.js"></script>

Внимание! Подключение jQuery должно происходить после подключения файлов стилей, но перед подключением или непосредственной ставкой в станицу остального JavaScript кода.

В этой простой статье мы поговорим о функции jQuery(document).ready(). Эта функция выполняет свое содержимое (внутренние функции) при загрузке DOM (объектной модели документа) вашей HTML-страницы. Можно сказать, что эта функция аналогична функции Document.onload, но с той лишь разницей, что может быть использована множество раз. По-сути, каждый ваш скрипт должен быть заключен в функцию jQuery(document).ready(){…}. Это необходимо для того, чтобы ваш код исполнялся только после того, как была построена объектная модель документа, в противном случае работать ваш javascript будет некоректно.

Для функции jQuery() существует синоним — функция $(), которую чаще всего и использую благодаря краткости, а для функции jQuery(document).ready() также существуют синонимы:
jQuery(function())
$(function())

Давайте рассмотрим простой пример использования этих функций:

<!DOCTYPE html>
<html>
  <head>
    <title>RubyDev.ru</title>
    <style>
      div.mega-div{width:200px;margin: 0 auto;background:#c00; border:5px solid #922;padding:20px;color:#fff;font-weight:bold}
    </style>
    <script src="jquery-1.6.2.min.js"></script>
    <script>
      $(function(){
        $('div.mega-div').text("RubyDev.ru!")
      })
    </script>
  </head>
  <body>
    <div>Some text</div>
  </body>
</html>

Здесь мы при помощи селектора «div.mega-div» обратились к объекту DOM — div’у со стилем mega-div и поменяли содержащийся в нем текст «Some text» на более осмысленное — «RubyDev.ru!», все это произошло при событии загрузки документа, а значит, пользователь так и не успел заметить подмены содержимого страницы!

В следующей статье мы рассмотрим более сложные и интересные примеры работы с jQuery.

Tags: ,

Responses

  1. abonec says:

    августа 9, 2011 at 15:06 (#)

    Пользователь ничего не заметил, так как файл загрузился моментально из-за своей простоты и того факта, что он находится на жестком диске. На тяжелых сайтах это будет уже заметно и будет уже проблемой.

  2. ermolaev says:

    августа 10, 2011 at 20:39 (#)

    Это уже давно не проблема, и кэш ни кто не отменял 31 KB

  3. admin says:

    августа 10, 2011 at 20:58 (#)

    abonec, у 90% пользователей необходимая версия библиотеки уже находится в кэше браузера, поэтому грузится будет только ваш собственный javascript код и плагины, которые не закешированы. Даже если забыть про кэш, то проблема отдачи пользователю дополнительно хоть целого мегабайта скриптов и т.д. уже не проблема, т.к. скорость интернета очень выросла, не в 90х живем ;-)

  4. anton says:

    ноября 17, 2011 at 08:53 (#)

    а при чем тут руби?
    и как дом реди вызывать в ерб? и как быть с дом реди после загрузки дива аяксом?

  5. admin says:

    ноября 17, 2011 at 11:14 (#)

    anton, «Ruby on Rails c нуля! — блог изучающего Ruby, Ruby on Rails и другие технологии» — вот javascript, jQuery и Си как раз-таки относятсятся к тем самым другим технологиям.

    Второй вопрос не очень понял. Вообще свои js-файлы называй .js.erb и тогда вставки Ruby в них автоматически будут преобразовываться в JS-код. например:

    < % message = "Welcome to RubyDev!" %>
    alert(< %= message %>);

    Выведет alert-сообщение с текстом «Welcome to RubyDev!».

    Касательно третьего вопроса я уже писал статью об обработчиках событий в jQuery и там для подгружаемых через ajax элементов можно использовать функции live() и delegate() вместо bind(), которая «не видит» подгруженных элементов.

Leave a Response

Для подсветки кода используйте BB - коды: [language]...[/language], где language может быть: ruby, javascript, css, html.