 
			
				10.01.2014, 13:55
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.04.2013 
					
					
					
						Сообщений: 51
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
			
			 
				Выбор элемента :visible
			 
			
		
		
		
		Пациент
После каждого ряда "блоков с картинкой", идет пунктирная линия. Ее я реализовал через добавления класса ( который в свою очередь добавляет псевдоэлемент) к первому "блоку с картинкой" и к каждому 4n+5. Вывод блоков меняется в зависимости от выбранного фильтра ( сверху: Квартиры Котеджы ...) поэтому, мне после нажатия на фильтр надо заново переопределить первый и 4n+5 элементы.  
первый определятеся корректно
 
$('.items-bl li:visible:first')
Мне нужно определить из  видимых "блоков с картинкой" 4n+5, это я делают следующим образом
 
$('.items-bl li:visible:nth-child(4n + 5)')
НО 4n+5 он считает не из  видимых элементов, а из всех элементов.
 Как мне выбрать 4n+5 именно из видимых элементов ? 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2014, 14:11
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 sinistral 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.03.2011 
					
					
					
						Сообщений: 5,418
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		Попробуй так: 
$('.items-bl li:visible').filter(':nth-child(4n + 5)')
 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2014, 14:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.04.2013 
					
					
					
						Сообщений: 51
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 проблема остаётся, ведет себя так же 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2014, 14:34
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.04.2013 
					
					
					
						Сообщений: 51
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 На сколько я понял, работает следующая логика 
Выбираются элементы 4n+5, и если они visible, то селектор срабатывает 
повторюсь, мне надо 
чтобы сначала выбрало visible элементы, и уже в них рассчитало 4n+5 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2014, 16:15
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 sinistral 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.03.2011 
					
					
					
						Сообщений: 5,418
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от dikucher
			 
		
	 | 
 
	
		На сколько я понял, работает следующая логика 
Выбираются элементы 4n+5, и если они visible, то селектор срабатывает 
повторюсь, мне надо 
чтобы сначала выбрало visible элементы, и уже в них рассчитало 4n+5
	 | 
 
	
 
 не
 
он выбирает :visible, потом из них выбирает 4n+5
 
проблема в том, что он в "n" учитывает скрытые - т.е. в n индекс относительно дерева, а не коллекции
 
решение - callback.
 
я попробовал так :
 http://jsbin.com/ImeWoRiT/1 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2014, 17:32
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.04.2013 
					
					
					
						Сообщений: 51
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		вот как я изменил код ( срабатывает при клике на любую кнопку из фильтра ) посмотреть там же  тест
jQuery(function ($) {
        var hide = $('.filter');
        var collection = $('.items-bl li');
        hide.click(function () {
            collection.removeClass('line');
            collection.filter(':visible').filter(function (index) {
                var isMatching = index && index % 4 === 0;
                return isMatching;
            }).add(collection.last()).addClass('line');
        });
        collection.removeClass('line').filter(':nth-child(4n+5), :first').addClass('line');
    });
но что то идет не так  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				10.01.2014, 20:29
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 sinistral 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.03.2011 
					
					
					
						Сообщений: 5,418
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 обрати внимание на css по моей ссылке 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2014, 04:40
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Профессор 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 23.10.2010 
					
					
					
						Сообщений: 2,718
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	| 
	
	
		
		
		
		
		 Точно, пациент. Миленький транзистор. Лучше бы починили fancybox или как он там, который бедолага не масштабируется и демонстрирует еще более прелестные полосы прокрутки вокруг оконца с фоткой. 
 
Ответ, конечно, не по существу, но я предлагаю поменять существо с ковыряния в жикверях на дизайн, масштабируемость и все такое. Потому что эти пунктиры ну вообще там никуда. Это я как дизайнер вам говорю. 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				11.01.2014, 16:03
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 sinistral 
				
				
				
				
	
 
 
			 | 
			  | 
			
				
				
					Регистрация: 28.03.2011 
					
					
					
						Сообщений: 5,418
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		
	
 
	
		
			Сообщение от kostyanet
			 
		
	 | 
 
	
		Точно, пациент. Миленький транзистор. Лучше бы починили fancybox или как он там, который бедолага не масштабируется и демонстрирует еще более прелестные полосы прокрутки вокруг оконца с фоткой. 
 
Ответ, конечно, не по существу, но я предлагаю поменять существо с ковыряния в жикверях на дизайн, масштабируемость и все такое. Потому что эти пунктиры ну вообще там никуда. Это я как дизайнер вам говорю.
	 | 
 
	
 
 от программиста требуется сверстать и оживить то, что нарисовал дизайнер.
 
правка программистом конечного варианта дизайна строго карается.
 
так то, ясный красный, они там не к месту  
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
	
	
	
		
	
		
		
		
			
			 
			
				14.01.2014, 19:20
			
			
			
		  
	 | 
 
	
		
		
		
			
			| 
			
				
				
				 Аспирант 
				
				
				
				
	
 
 
 
			 | 
			  | 
			
				
				
					Регистрация: 18.04.2013 
					
					
					
						Сообщений: 51
					 
					
					
			
		
 
		 
		
			 | 
		 
		 
		
	 | 
 
	
	
	
		
		
		
		
		не суть, к месту эти линии там или нет. Нарисовали - значит нужно делать. 
melky у меня проблема в следующем, ( я хоть и изменил немного ваш код, но  вроде не поломал его логики ). Но он зараза по прежнему определят мне 4n+5 из всех элементов, а ведь должен определять этот 4n+5 из видимых
 
jQuery(function ($) {
        var hide = $('.filter');
        var collection = $('.items-bl li');
        hide.click(function () {
            collection.removeClass('line');
            collection.filter(':visible').filter(function (index) {
                var isMatching = index && index % 4 === 0;
                return isMatching;
            }).add(collection.last()).addClass('line');
        });
        collection.removeClass('line').filter(':nth-child(4n+5)').addClass('line');
    });
верстка лежит все  там же 
		
	
		
		
		
		
		
		
	
		
		
	
	
	 | 
 
 
	 
		 | 
 
 
 
 |  
  |