С первым тиражом Simply JavaScript, который практически распродан, и со вторым тиражом, который уже начался, пришло время сделать то, чего я с нетерпением ждал с тех пор, как Кэмерон и я впервые придумали книгу: выпустить библиотеку Core в открытую. источник.
Загрузить: core.js (версия 1.0, 2007-08-29)
Как я объяснил ранее в Просто JavaScript: насколько просто слишком просто? Эта книга использует уникальный подход, обучая ненавязчивому написанию сценариев с самой первой страницы. Он достигает этого, используя свою собственную библиотеку JavaScript — библиотеку Core — чтобы скрыть некоторые мельчайшие подробности обработки событий JavaScript и других громоздких задач, пока читатель не наберет скорость. И теперь я с удовольствием делаю эту библиотеку доступной всем, а не только владельцам книги.
Еще одна библиотека?
Почему ты спрашиваешь? В конце концов, существует множество других хороших библиотек JavaScript, от svelte ( base2 , jQuery ) до опухших ( YUI , Dojo ). Есть ли необходимость в другом?
Все эти библиотеки делают замечательную работу по превращению JavaScript в более мощный и более функциональный язык. Они были настроены и перенастроены для обеспечения оптимальной производительности и минимальных накладных расходов, и именно поэтому мы уделяем им так много внимания в нашей книге.
Но это не цель библиотеки Core. Библиотека Core, скорее, предназначена для того, чтобы сделать JavaScript более легким для изучения языком , сгладив неровности, которые обычно сбивают с толку новичков. Выпуская Базовую библиотеку под чрезвычайно либеральной лицензией MIT , мы надеемся помочь новичкам начать работу с JavaScript — независимо от того, покупают ли они эту книгу или нет.
Как мне это использовать?
Лучшее руководство пользователя по базовой библиотеке — это, конечно же, наша книга « Просто JavaScript» . Он не только заполнен примерами использования библиотеки, но и содержит подробное приложение, которое построчно объясняет, как работает библиотека. Тем не менее, вот краткий обзор библиотеки Core и ее использования.
Чтобы использовать библиотеку Core, необходимо загрузить и разместить файл core.js на своем сайте, а затем загрузить его с помощью <script>
на любой странице перед кодом JavaScript, который будет его использовать:
<head> ... <script type="text/javascript" src="core.js"></script> <script type="text/javascript" src="yourscript.js"></script> </head>
После загрузки библиотеки Core вы можете написать ненавязчивый код JavaScript, используя следующий шаблон:
var YourScript = { init: function() { // Your start-up code here }, // Additional methods here }; Core.start(YourScript);
Метод Core.start
в последней строке будет обрабатывать все детали, обеспечивающие вызов метода init
вашего скрипта, как только страница, содержащая скрипт, завершит загрузку.
Библиотека Core была протестирована с большинством популярных браузеров, в том числе:
- Firefox 2.0
- Internet Explorer 6.0 и 7.0
- Safari 2.0
- Опера 9.23
Также ожидается, что он будет работать с Internet Explorer 5.5 и Firefox 1.5.
Что еще это делает?
Опять же, есть много деталей, которые можно найти в Приложении A Просто JavaScript , но вот краткий обзор возможностей, предоставляемых библиотекой Core:
Слушатели событий
-
Core.start(ScriptObject)
- Как показано выше, вызывает
ScriptObject.init
когда страница загружена. -
Core.addEventListener(target, type, listener)
- Регистрирует
listener
функции, вызываемый при возникновении событияtype
(например,"click"
) наtarget
или на одном из ее потомков. Эквивалентtarget.addEventListener(type, listener, false)
в браузерах, поддерживающих события DOM2. -
Core.removeEventListener(target, type, listener)
- Отменяет регистрацию
listener
функции, чтобы она не вызывалась при возникновении событияtype
(например,"click"
) наtarget
или на одном из ее потомков. Эквивалентtarget.removeEventListener(type, listener, false)
в браузерах, поддерживающих события DOM2. -
Core.preventDefault(event)
- Отменяет действие по умолчанию, связанное с данным объектом
event
. -
Core.stopPropagation(event)
- Предотвращает предков текущего элемента от получения уведомления о данном
event
.
Управление классами CSS
-
Core.addClass(target, className)
- Добавляет указанный класс к существующим классам (если таковые имеются), примененным к
target
элементу. -
Core.getElementsByClass(className)
- Возвращает массив всех элементов в документе, к которым применен указанный класс.
-
Core.hasClass(target, className)
- Возвращает
true
если указанный класс был применен кtarget
элементу,false
если нет. -
Core.removeClass(target, className)
- Удаляет указанный класс из списка классов, примененных к
target
элементу.
Компьютерные стили
-
Core.getComputedStyle(target, styleProperty)
- Получает действующее значение указанного свойства CSS после того, как все различные источники стилей CSS были применены к
target
элементу.
Подождите минуту … это отстой!
Если вы видите в коде библиотеки Core что-то не совсем подходящее или если вы чувствуете, что в библиотеке отсутствует жизненно важная функция, я с радостью рассмотрю любые предложения по улучшению, которые могут у вас возникнуть. Либо прокомментируйте здесь, либо напишите мне на kevin (at) sitepoint.com.
Помните, однако, что цель этой библиотеки — просто сгладить грубые кусочки JavaScript, которые затрудняют освоение новичкам. Я не заинтересован в добавлении, например, API селектора CSS в библиотеку Core, так как существует множество хороших библиотек для добавления функциональности в JavaScript. Аналогичным образом, оптимизация производительности не особенно интересна для меня, если она не может быть выполнена без усложнения понимания кода. В конце концов, последний шаг в изучении JavaScript с помощью библиотеки Core — уметь читать библиотеку Core и понимать, как работает весь код!
Что я могу сделать с этим?
Лицензия MIT позволяет вам делать с библиотекой все что угодно, в том числе использовать ее для публикации конкурирующей книги JavaScript (кстати, удачи). Все, что требуется от библиотеки, — это чтобы вы дали нам кредит, оставив уведомление о лицензии, содержащееся в библиотеке, когда вы используете ее в своих собственных проектах.
Далеко не желая хранить эту библиотеку для себя, мы были бы рады, чтобы она стала фактической отправной точкой для обучения JavaScript для начинающих. Если вы используете библиотеку Core каким-либо образом, оставьте комментарий, чтобы сообщить нам об этом!