4 заметки с тегом

minijQuery РСС

18 января 2010, 12:52

minijQuery 0.0.2a (each, onclick, onmouse*) + demo with ZeroClipboard

Всем привет :)

По нужде добавил обработчики мыши (клик, влёт, вылет) и функцию обработки селектора — в простонародье each(). Рание немного модифицировал селектор + расширил обработку параметров, что бы можно было работать с each ;)

Работает each() вот так:
u$("#chars td").each(function(){
	u$(arguments[0]).onmouseover(function(){
		alert(arguments[0].tagName);
	});
});
Обращаться к передаваемому обжекту пока через arguments[0], в планах сделать через this, но там нужно сделать хитрые манипуляции + свой собственный eval() через добавление к заголовку джаваскрипта с контентом самой функции ;)

Для примера прикрутил к предыдущей статье ZeroClipboard, что бы при клике Копировать содержимое ячейки ;) Там всё просто:
  • создаём объект типа ZeroClipboard.Client()
  • через each() вешаем на onmouseover() обработчик
  • дальше уже ZeroClipboard вешает свой флешовый click() по срабатыванию которого и происходит копи-в-буфер



minijQuery

15 января 2010, 17:19

minijQuery, habraAlert fix %)

О, делал УТФ8 проектик, а тут мои скриптики перестали работать + некоторые крохотные правочки.


Сделал их в юникс кодировочке, а не дос ;)

ps: новый Джиквери 1.4 шикарен, скорость фантастическая... Вот ещё материальчики

minijQuery

8 декабря 2009, 15:44

Хохохо, miniJquery 0.0.1.3a Избранное

Как и обещал
  • декрементные циклы
  • лёгкая оптимизация
  • добавить простейшую рекурсию, для более вложенных запросов (запросы через запятую — селектор отдельной функцией);
  • добавить методы / выкинуть второй параметр ( chains );
  • расширить функционал изменением стилей;
Ограничения (поддерживает только двухуровневый запрос):
  • .класс
  • тэг.класс
  • #конетйнер .класс
  • #конетйнер тэг.класс
  • #конетйнер тэг
  • допустимый запрос, допустимый запрос
  • всё остальное идёт боком ;)
Планы на будующее:
  • расширение функционала селектора tinyCSSSelector (inputs, сложные многоуровневые)
  • Подключение других селекторов (yass, sizzle)
  • добавить новых функций разных (самые часто используемые мной в джиквери)
  • добавить простейшие обработчики событий (click, mouse)
  • добавить поддержку частных(custom) функций
  • сделать each
  • добавить простейшую анимацию (по определённым свойствам)
  • кеширование о_О



minijQuery

19 сентября 2009, 11:15

Javascript: minijQuery 0.0.0.1 alpha :D

Есть много проектов, где функционал Джиквери слишком излишен, и используется от сили 1% возможностей? Зачем тогда тянуть 55кб? Если тот проект вместе с графикой в два раза меньше ;)

Недолго подумав, решил начать писать нечто кастомное. Название всплыло само собой minijQuery. Сразу скажу, для работы использует $ и addLoadEvent, что бы сразу было кроссбраузерно и красиво ;)
minijQuery = function(pattern, action) {
	// пустой патерн, уходим, возможно скоро закоментируется
	if (typeof pattern != "string" || pattern.length < 1) return;
	// объявляем дефолтный выбор
		var _target = document.body; // контейнер всё боди
		var _select = "*"; // выбераем все теги
		var _class = false; // класс
	// разбиваем на части запросик
	var selector = pattern.split(" ");
	var parts = selector.length;
	// дальше по сценарию
	switch (parts){
		case 1: //если всего один, подразумеваем тег.класс
			var sel = selector[0].split("."); 
			_select = sel[0]; 
			_class = sel[1];
			break;
		default: // если больше, значит есть ещё и #контейнер
			var sel = selector[0].split("#");
			_target = $(sel[1]);
			var sel = selector[1].split(".");
			_select = sel[0]; 
			_class = sel[1];
	}
	// дальше просто перебераем в контейнере, все нужные тэги
	var tag_s = _target.getElementsByTagName(_select);
	for(var i=0; i < tag_s.length; i++) {
		if (tag_s[i].className == _class || !_class) {
			// совпал класс, или не задан выполняем действие
			// пока только элементарные
			// скоро они преврятятся в методы 
			switch (action) {
				case "hide": tag_s[i].style.display = 'none'; break;
				case "show": tag_s[i].style.display = 'inline'; break;
				case "toggle": 
					var _display = tag_s[i].style.display;
					tag_s[i].style.display = 
						_display != 'none' || _display.length < 1
						 ? 'none' : 'inline'; 
					break;
			}
		}
	}
	// возвращаем список выбраных элементов
	return tag_s;
}
Попробовать пример можно слева, на тэгах, посмотреть отдельно, будет ссылка ниже.

Ограничения (поддерживает только двухуровневый запрос):
  • .класс
  • тэг.класс
  • #конетйнер .класс
  • #конетйнер тэг.класс
  • #конетйнер тэг
  • всё остальное идёт боком ;)
В планах:
  • добавить простейшую рекурсию, для более вложенных запросов;
  • расширить функционал изменением стилей;
  • добавить методы / выкинуть второй параметр;


crossbrowser   minijQuery