Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 19.03.2014, 04:05
Интересующийся
Отправить личное сообщение для wp_panda Посмотреть профиль Найти все сообщения от wp_panda
 
Регистрация: 08.02.2014
Сообщений: 12

при :nth-child(2n) скрипт не работает
Укажите ошибку пожалуйста, при index_del_omega = 2 условие не срабатывает в остальных случаях работает.
function sizer() {
			var innert_width = $('.cr-single-gallerey').width(); // ширина родителя 
			var otert_width = $('.cr-single-gallerey ul li').width(); // ширина элемента
			var index_del  = innert_width/otert_width; // считаем сколько элементов помещается в строку
			var index_del_omega  =  parseInt(index_del.toFixed(0),10); //преобразуем переменную и отбрасываем знаки после запятой 
			var index_del_alpha  =  index_del_omega+1; // получаем первый элемент следующей строки строки 
			
			if (index_del_omega = 2 ) { // если в строку помещается 2 элемента 
			$('.cr-single-gallerey ul li').filter( ':odd' ).addClass('omega').siblings(".cr-single-gallerey ul li").removeClass("omega"); // четным присваеваем класс omega
			$('.cr-single-gallerey ul li').filter( ':even' ).addClass('alpha').siblings(".cr-single-gallerey ul li").removeClass("alpha"); // нечетным присваеваем класс alpha
			} else if (index_del_omega >2 ) { // если в строку помещается больше 2-х элементов
			$('.cr-single-gallerey ul li:nth-child('+ index_del_omega+ 'n)').addClass('omega').siblings(".cr-single-gallerey ul li").removeClass("omega"); // последнему в строке присваеваем класс omega
			$('.cr-single-gallerey ul li:nth-child('+ index_del_alpha + 'n)').addClass('alpha').siblings(".cr-single-gallerey ul li").removeClass("alpha");// первому в строке присваеваем класс alpha
			$('.cr-single-gallerey ul li:eq(0)').addClass('alpha');//самому первому присваиваем alpha
			} else { // в остальных случаях (1 элемент в строку)
			$(".cr-single-gallerey ul li").addClass("omega"); // всем присваеваем alpha
			$(".cr-single-gallerey ul li").addClass("alpha"); // всем присваеваем omega
			}
	}


та же ситуация если делать так
if (index_del_omega >1 ) { // если в строку помещается больше 1 го элемента
			$('.cr-single-gallerey ul li:nth-child('+ index_del_omega+ 'n)').addClass('omega').siblings(".cr-single-gallerey ul li").removeClass("omega"); // последнему в строке присваеваем класс omega
			$('.cr-single-gallerey ul li:nth-child('+ index_del_alpha + 'n)').addClass('alpha').siblings(".cr-single-gallerey ul li").removeClass("alpha");// первому в строке присваеваем класс alpha
			$('.cr-single-gallerey ul li:eq(0)').addClass('alpha');//самому первому присваиваем alpha
			} else { // в остальных случаях (1 элемент в строку)
			$(".cr-single-gallerey ul li").addClass("omega"); // всем присваеваем alpha
			$(".cr-single-gallerey ul li").addClass("alpha"); // всем присваеваем omega
			}
	}
Ответить с цитированием
  #2 (permalink)  
Старый 19.03.2014, 04:26
Аспирант
Отправить личное сообщение для bayrach Посмотреть профиль Найти все сообщения от bayrach
 
Регистрация: 16.01.2011
Сообщений: 71

Почему в условии присваивание?
if (index_del_omega = 2 ) { // если в строку помещается 2 элемента

nth-child прекрасно работает, а если не работает, значит в index_del_omega не приходит двойка. http://jsfiddle.net/YSD36/

Последний раз редактировалось bayrach, 19.03.2014 в 04:30.
Ответить с цитированием
  #3 (permalink)  
Старый 19.03.2014, 04:30
Интересующийся
Отправить личное сообщение для wp_panda Посмотреть профиль Найти все сообщения от wp_panda
 
Регистрация: 08.02.2014
Сообщений: 12

приходит
дописываю и по загрузке и по ресайзу
$('.cr-single-gallerey').prepend( innert_width +' - ' + otert_width+' - ' + index_del_omega +' - '+  index_del_alpha+ '||   ');

все ок возврвщает, да и не при 2 работает
Ответить с цитированием
  #4 (permalink)  
Старый 19.03.2014, 05:25
Интересующийся
Отправить личное сообщение для wp_panda Посмотреть профиль Найти все сообщения от wp_panda
 
Регистрация: 08.02.2014
Сообщений: 12

двойка приходило, а вот .siblings() выбирал вообще все, почему не разобрался.
сделал через адские селекторы
function sizer() {
			var innert_width = $('.cr-single-gallerey').width();
			var otert_width = $('.cr-single-gallerey ul li').width();
			var index_del  = innert_width/otert_width;
			var index_del_omega  =  parseInt(index_del.toFixed(0),10);
			var index_del_alpha  =  index_del_omega+1;
			
			if (index_del_omega >1) {
			$('.cr-single-gallerey ul li:nth-child('+ index_del_omega+ 'n)').addClass('omega');
			$('.cr-single-gallerey ul li:not(.cr-single-gallerey ul li:nth-child('+ index_del_omega+ 'n))').removeClass("omega");
			$('.cr-single-gallerey ul li:nth-child('+ index_del_omega + 'n)').next().addClass('alpha');
			$('.cr-single-gallerey ul li:not(.cr-single-gallerey ul li:nth-child('+ index_del_omega + 'n))').next().removeClass("alpha");
			$('.cr-single-gallerey ul li:eq(0)').addClass('alpha');
			} else {
			$(".cr-single-gallerey ul li").addClass("omega");
			$(".cr-single-gallerey ul li").addClass("alpha");
			}
	}
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Скрипт не работает в FF и опера, но работает в IE(в чем дело???) Cepera Firefox/Mozilla 1 24.08.2012 16:46
Не работает скрипт создаюший iframe Tvis Общие вопросы Javascript 1 17.04.2012 23:57
Почему не работает скрипт, подскажите aviaks Ваши сайты и скрипты 2 05.05.2009 14:38
Скрипт меню-гармошки работает выборочно Extern Элементы интерфейса 2 23.02.2009 15:32
Скрипт, который должен листать объекты не работает. Mike Abasov jQuery 4 12.08.2008 11:16