Пишем jQuery c нуля. Часть2 – Поисковый движок и вывод результатов

В продолжение рубрики “Пишем jQuery c нуля” хотел бы рассказать о внутреннем поисковом движке, той ключевой функциональности, которая и дала название “jQuery” (Javascript query). Плюс рассмотрим момент инициализации/создания jQuery объекта.

Continue reading

Пишем jQuery c нуля. Часть1

djQuery

Начинаю новую рубрику статей посвященных внутренностям jQuery. Материал должен стать полезен как начинающим JavaScript/jQuery разработчикам, так и опытным специалистам. Шаг за шагом мы воссоздадим функциональность самой популярной на сегодняшний день библиотеки.

Continue reading

jQuery to String

Иногда возникает необходимость получить html-содержимое jQuery-объекта в виде строки. Первое что приходит в голову

[javascript]$element.html();[/javascript]

да, это работает, но мы не получаем html-кода самого контейнера (или корневого элемента). Следующий вариант, который приходит в голову – сделать обертку копии текущего элемента и после уже получить содержимое:

[javascript]$(‘<div>’).append($element.clone()).html();[/javascript]

но как-то это громоздкою.
Погуглив нашел еще интересный вариант, который работает в jQuery начиная с версии 1.6:

[javascript]$element.prop(‘outerHTML’); [/javascript]

Ну и можно еще поиграть с переопределением метода toString (сделано в качестве эксперимента и крайне не рекомендуется делать в реальном проекте):

[javascript]
$.fn.toString = function() {
return $(this).prop(‘outerHTML’);
}
[/javascript]

после чего

[javascript]alert($element) [/javascript]

выведет не просто [Object object], а строку – HTML содержимое объекта.

И код.

Delayed Keypress или создаем свои хуки событий на jQuery

Иногда возникает необходимость расширить стандартное событие JavaScript/jQuery, добавить определенную специфику, например: мы хотим выводить авто-дополнение для текстового поля при вводе, при этом мы не хотим чтобы запрос отправлялся на сервер при каждом нажатии клавиши(будет очень много ненужных запросов). Зададимся целью посылать запрос через 500 миллисекунд (полсекунды) после того, как пользователь прекратит набирать(либо остановился в ожидании подсказки авто-дополнения).

Continue reading