2009/03/31

Yass + jQuery

Сначала немного пиара Yass (вдруг кто не в курсе, что это - так это JavaScript библиотека для работы с селекторами http://yass.webo.in/)
Что видит юзер, когда приходит на сайт? Он видит несколько примеров, код и таблицу сравнения скорости работы. О, прикольно! быстро работает! - говорит юзер и уходит дальше, потому как непонятно, для чего всё это надо. На самом деле, надо это только для выборки селекторов.

Как мне рассказал один username%#javascript@rusnet.ru, который достал разрабов, функциональность yass укладывается в несколько методов:
_ (селектор, корень, неКэшировать) -- основной метод для выбора элементов
_.ready (функция) - позволяет назначать функции на выполнение по загрузке DOM-дерева на странице.
_.bind (объект(ы) или CSS-строка, событие, обработчик) -- метод для назначения обработчиков для элемента, эементов или эементов, соответствующих заданному CSS-селектору
_.load(алиасы, обработчик) -- метод для модульной загрузки произвольных модулей. Зависимости модулей на данный момент разделены - , в последней редакции это будет изменено на #. Обработчикзадается в виде строки, а не функции (и вызывается при загрузке каждого модуля через eval).
_.postloader (элемент script) -- проверяет, загружен ли текущий тег script и запускает всю логику обработчиков (если удовлетворены все зависимости для загрузки данного модуля).

Возникает вопрос: а дальше? Хочется ведь какой-то функциональности, кроме выборки всех первых абзацев с определённым классом внутри всех блоков? Хочется как-то подружить yass и jQuery.

Как подружить yass и jQuery? Решение простое как враппер

<script type="text/javascript" src="http://yass.webo.in/yass.0.3.8.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
<script>
    jQuery.noConflict();
    var $ = function(.){return ('string'==typeof .)?jQuery(_(.)):jQuery(.);};
</script>

* This source code was highlighted with Source Code Highlighter.


ps для тех, кто не понял (надеюсь, в этом блоге нет таких): для всех строковых параметров (предполагается, что это запрос селектора), делается обращение к yass, все другие вызовы пересылаются напрямую к jQuery. Все результаты работы yass оборачиваются в jQuery-объекты.
ps2: точка в параметрах - ради лулзов :)
blog comments powered by Disqus