Javascript-форум (https://javascript.ru/forum/)
-   Ваши сайты и скрипты (https://javascript.ru/forum/project/)
-   -   Прототип библиотеки jNext (https://javascript.ru/forum/project/24387-prototip-biblioteki-jnext.html)

FINoM 29.12.2011 00:20

Цитата:

Сообщение от melky
FINoM, почему вы не используете github в таком интересном проекте? хотя бы из-за возможости откатиться или принять чужой фикс какой-нибудь ошибки

Все методы пока что сделаны исключительно для демонстрации (самому себе :D) и тестирования возможностей, выкладывать пока что нечего.

FINoM 29.12.2011 03:00

Цитата:

Сообщение от melky
PS хм. трудновато понять код, когда он отдан plain'ом на маленький экранчик смартфона. больше всего не понял "класс" Selector.

Selector отвечает за работу с селекторами :D
Самый простой пример:
Selector('div').select(node); // просто напросто получает все дивы из node

Сложный пример:
siblings: function(selector){
	selector = selector || '';
	this.nodeList = Selector('{parentNode} > ' + selector + ':not({:this})', {
		parentNode: jNext.mapDefined(this.nodeList, function(element){
			return element.parentNode;
		}),
		':this': this.nodeList
	}).select();
                                                                                                                            
},
Первым аргументом передает шаблон селектора, где {такие штуки} в процессе работы скрипта преобразуются в [data-jnextrandomdataid="вот такие"]
Вторым аргументом идет объект, ключами которого являются строки из шаблона, а значениями списки узлов, которым нужно добавить рандомный атрибут и которые как бы будут выступать {вот этими} элементами.

Не уверен, что норамльно объяснил :D

melky 29.12.2011 08:58

Цитата:

Сообщение от FINoM (Сообщение 146972)
Не уверен, что норамльно объяснил :D

прочёл ещё раз код, стало понятнее )

Kolyaj 29.12.2011 09:25

Цитата:

Сообщение от FINoM
Тогда будет больше кода, а производительность не сильно изменится (при одном элементе будет одна итерация цикла).

Производительность изменится, т.к. если просят один элемент, то достаточно найти первый, остальные не нужны, можно не искать.

FINoM 29.12.2011 15:18

Цитата:

Сообщение от Kolyaj
Производительность изменится, т.к. если просят один элемент, то достаточно найти первый, остальные не нужны, можно не искать.

Потом может быть сравню querySelector с querySelectorAll, но есть сомнения по поводу существенной разницы.

Плюс ко всему, придется отказаться от совместимости с jQ.

FINoM 30.12.2011 04:55

Как правильно организовать получение текущего css? Сначала проверять style, если результат пустой, то смотреть через getComputedStyle? Можно ведь сразу смотреть getPropertyCSSValue, плохая идея?

Нужны ли хуки?

Да и вообще, что нужно реализовать в первую очередь (слишком много всего предстоит)? И не хочет ли кто присоединиться на текущем, почти нулевом этапе?

devote 30.12.2011 05:06

function style( elem ) {
	if ( elem.ownerDocument && elem.ownerDocument.defaultView ) {
		return elem.ownerDocument.defaultView.getComputedStyle( elem, null );
	} else if ( elem.currentStyle ) {
		return elem.currentStyle;
	}
	return null;
}

FINoM 30.12.2011 05:11

devote, спасибо, но как получить css свойство пользуясь твоим примером?
Цитата:

Сообщение от devote
elem.ownerDocument.defaultView.getComputedStyle( elem, null );

Что это за колбаса? Не проще ли window.getComputedStyle?
Цитата:

Сообщение от devote
elem.currentStyle

Это из ИЕ?

Ты предлагаешь не пользоваться style вообще для получений значений свойств?

trikadin 30.12.2011 05:13

Цитата:

Сообщение от FINoM
Что это за колбаса? Не проще ли window.getComputedStyle?

Это правильный способ получения стиля.

Цитата:

Сообщение от FINoM
Это из ИЕ?

Да.

FINoM 30.12.2011 05:14

Цитата:

Сообщение от trikadin
Это правильный способ получения стиля.

Можно подробнее? Всё дело в возможных проблемах с айфреймом?


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