Deerua about Coding -> Заметки с тегом «minijQuery»

Блог о кодинге, автор Deerua

coding, javascript, css, html, php, jquery, mysql, deerua

Deerua about Coding

 Избранное

 Самые комментируемые за всю историю

 175 заметок ненаглядно

 Архив за 2010, 2009, 2008  год


 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() по срабатыванию которого и происходит копи-в-буфер



 3 комментария

 Теги: javascript   framework   minijQuery

 15 января 2010, 17:19       более месяца назад

minijQuery, habraAlert fix %)

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


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

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

 Комментировать…

 Теги: javascript   framework   minijQuery

 8 декабря 2009, 15:44       более 3-х месяцев назад

Хохохо, miniJquery 0.0.1.3a  

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



 1 комментарий

 Теги: javascript   framework   minijQuery

 19 сентября 2009, 11:15       более 5-и месяцев назад

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;
}
Попробовать пример можно слева, на тэгах, посмотреть отдельно, будет ссылка ниже.

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


 3 комментария

 Теги: browsers   crossbrowser, javascript   framework   minijQuery

Нужно создать сайт на 1С-Битрикс(Bitrix)?
Работает на движке e2 Selecta * All sources code was highlighted with w3club Highlighter.
deer.org.ua © 2008—2010 Vitaliy Bogdanets Deerua