Как работает jQuery

jQuery: Основы

Это вводная статья, целью которой является объяснить общие принципы работы jQuery. Чтобы приступить к изучению, создайте страницу HTML, со следующим содержимым:


	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
	<html xmlns="http://www.w3.org/1999/xhtml">
		<head>
			<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
			<script type="text/javascript"></script>
		</head>
		<body>
			<a href="http://jquery.com/">jQuery</a>
		</body>
	</html>
		

Если хотите использовать собственную копию библиотеки, поменяйте значение атрибута src в теге <script> так, что бы он указывал на Вашу версию библиотеки jquery.js. Если jquery.js расположен в той же директории, что и Ваш HTML-файл, используйте этот код:

	<script type="text/javascript" src="jquery.js"></script>
Собственную копию библиотеки jQuery Вы можете загрузить на странице Downloading jQuery.

Запуск кода по событию Document Ready

Первая вещь, которую делают большинство Javascript программистов – это добавление подобного кода в их программу:

	window.onload = function(){ alert("привет"); }

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

Для обхода этой проблемы в jQuery есть простое выражение, которое проверяет документ и ожидает, когда он будет готов к каким-либо действиям. Это выражение известно, как событие ready.


	$(document).ready(function(){
		// Здесь Ваш код
	});

Внутри события ready добавим обработчик клика по ссылке:


	$(document).ready(function(){
		$("a").click(function(event){
		alert("Спасибо за посещение!");
	});

Сохраните HTML файл и перезагрузите Вашу тестовую страницу в браузере. Теперь, перед переходом по ссылке браузер покажет alert с сообщением.

Для события click и большинства других событий, Вы можете не допустить поведение по умолчанию, вызвав event.preventDefault() в обработчике события:


	$(document).ready(function(){
		$("a").click(function(event){
		alert("Как Вы видите, ссылка больше не отправляет Вас на jquery.com");
		event.preventDefault();
		});
	});

Завершенный пример

Ниже представлен пример того, как должен выглядеть HTML файл нашего примера. Обратите внимание, что здесь идет ссылка на Google’s CDN для загрузки библиотеки jQuery. И пока что скрипт расположен в <head>, но в будущем размещайте его в отдельном файле, а этот файл подключайте с помощью атрибута src тега <script>.

	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
	<html xmlns="http://www.w3.org/1999/xhtml">
	<head>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
	<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"
		type="text/javascript"></script>

	<script type="text/javascript">
		$(document).ready(function(){
			$("a").click(function(event){
				alert("Как видите, ссылка больше не отправляет Вас на jquery.com");
				event.preventDefault();
			});
		});
	</script>
	</head>
	<body>
	<a href="http://jquery.com/">jQuery</a>

	</body>
	</html>

Добавление и удаление CSS класса

Важно: Все следующие примеры jQuery должны быть расположены внутри события event, для того чтобы они выполнялись, когда документ готов к работе. См. выше «Запуск кода по событию Document Ready».

Одна из стандартных задач – добавление (удаление) CSS класса.

Для начала, добавим некоторую информацию, касающуюся стиля, в <head> Вашего документа:

	<style type="text/css">
		a.test { font-weight: bold; }
	</style>

Теперь добавим вызов addClass в скрипт:

	$("a").addClass("test");

И все Ваши элементы стали «жирными».

Для удаления класса используйте removeClass

	$("a").removeClass("test");

Специальные эффекты

Библиотека jQuery предоставляет различные удобные эффекты.

Например, попробуйте следующий код:

	$("a").click(function(event){
		event.preventDefault();
		$(this).hide("slow");
	});

Теперь, если Вы кликните по ссылке, то она медленно исчезнет.

Колбэки и функции

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

Колбэк без аргументов:

	$.get('myhtmlpage.html', myCallBack);

Колбэк с аргументами:

Неправильно:

	$.get('myhtmlpage.html', myCallBack(param1, param2));

В данном случае сначала будет выполнена функция myCallBack, а потом её результат передан функции $.get() в качестве параметра.

Правильно:

	$.get('myhtmlpage.html', function(){
		myCallBack(param1, param2);
	});
Hosted by uCoz