Показать сообщение отдельно
  #1607 (permalink)  
Старый 21.11.2015, 14:36
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Вроде всё учёл.

getClosestRelative: function(strict) {
	var element, self = this,
		pattern = strict ? /relative/ : /relative|absolute|fixed/;
	while(self && self != document) {
		if(pattern.test(window.getComputedStyle(self).position)) {
			element = self;
			break;
		}
		self = self.parentNode;
	}
	return element || document.body;
}


Что скажете, коллеги? Оставить регулярки или лучше сделать обычным сравнением через условия?

getClosestRelative: function(strict) {
	var element, self = this, position;
	while(self && self != document) {
		position = window.getComputedStyle(self).position;
		if(strict ? position == 'relative' : position != 'static') {
			element = self;
			break;
		}
		self = self.parentNode;
	}
	return element || document.body;
}

Последний раз редактировалось ruslan_mart, 21.11.2015 в 14:44.
Ответить с цитированием