Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Библиотечка . (https://javascript.ru/forum/project/6025-bibliotechka.html)

Kolyaj 06.11.2009 16:59

Библиотечка .
 
Задумал тут как-то прошерстить свои скрипты, задокументировать все и протестировать. Половина того, что щас получилось, а получилось 100 кБ хорошо задокументированного кода, заменяет 80% jQuery при правильном подходе. Затык разве что с анимацией, не могу придумать лаконичный интерфейс.

Сорцы на гитхабе http://github.com/Kolyaj/CrossJS

Если кто-то хочет что-то обсудить/осудить/насрать в каменты -- милости прошу :) Если кто-то баги найдет -- вообще отлично будет.

B~Vladi 06.11.2009 18:17

Что-то Event маловат... add||remove будут?

Kolyaj 06.11.2009 18:18

Там нет Event, там EventObject. on/un в Element.js

Octane 06.11.2009 19:10

Вот и я тоже с интерфейсом анимации застрял)

typeof.js
Сейчас вот такой typeOf использую в проекте:
/**
	 * Определяет тип аргумента
	 * @argument {Mixin} enything Аргумент
	 * @type String
	 * @returns Тип аргумента
	 */
	typeOf: function (enything) {
		if (!arguments.length) {
			throw "MObj.typeOf: no argument";
		}
		if (enything === null) {
			return "null";
		}
		if (enything === undefined) {
			return "undefined";
		}
		return Object.prototype.toString.call(enything).slice(8, -1).toLowerCase();
	},


Element.js
removeClass: нужно изменять className, если класс был удален.

Не заметил ничего наподобие ElementTraversal.

Kolyaj 06.11.2009 20:01

Цитата:

Сообщение от Octane
Сейчас вот такой typeOf использую в проекте:

Я собирался такой сделать, но потом таки пришел к варианту с несколькими функциями на некоторые объекты. Я еще как-то не решил для себя, стоит различать string от String и т.п. или не стоит.

Цитата:

Сообщение от Octane
removeClass: нужно изменять className, если класс был удален.

Меняется же.

Цитата:

Сообщение от Octane
Не заметил ничего наподобие ElementTraversal.

А мне, честно говоря, никогда не нужен был.

Octane 06.11.2009 20:15

Цитата:

Сообщение от Kolyaj
Меняется же.

В смысле, если только был удален, чтобы не вызывать лишний раз reflow. Тем более это не сильно усложняет реализацию:
M.removeClass = function(el, cl) {
        el = $(el);
        var className = el.className, modified = false;
        className = className.replace(new RegExp('(^|\\s)' + cl + '(\\s|$)', 'g'), function () {
                modified = true;
                return ' ';
        });
        if (modified) {
                el.className = className;
        }
    };


Цитата:

Сообщение от Kolyaj
А мне, честно говоря, никогда не нужен был.

Как же без nextElementSibling и previousElementSibling, каждый раз циклы писать?

Kolyaj 06.11.2009 20:19

Octane,
понятно, спасибо.

micscr 29.11.2009 16:22

Скачал. Буду смотреть и анализировать.

Спасибо за комменты на русском, а то сейчас у многих наших
мода - на инглише все (проблема не глобальная, но время ест).

Kolyaj 29.11.2009 16:38

Цитата:

Сообщение от Octane
Как же без nextElementSibling и previousElementSibling, каждый раз циклы писать?

Что-то не видел вопроса. Мне как-то всегда хватало getElementsByTagName, вспоминается единственный случай, когда было недостаточно, но и там был букмарклет для яндекса.

Tim 29.11.2009 19:25

В закладки!


Часовой пояс GMT +3, время: 17:03.