Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #161 (permalink)  
Старый 24.01.2018, 15:54
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Скажите пожалуйста, почему при выборке элементов, данный вариант выдаёт ошибку?

[].forEach.call(pages, function(el, i, p) {
	if (p[0].contains("active")){
		alert("wow");
	}
});
Ответить с цитированием
  #162 (permalink)  
Старый 24.01.2018, 16:11
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Nlk,
contains это что?
Ответить с цитированием
  #163 (permalink)  
Старый 24.01.2018, 16:45
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

рони,
Проверка на содержание класса.
Видимо это node узел и у не получиться проверить?
Ответить с цитированием
  #164 (permalink)  
Старый 24.01.2018, 16:52
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Nlk, у вы забыли сначала обратиться к свойству "classList".

ps. зачем перебирать коллекцию, если проверяется всегда только первый эл-т?
Ответить с цитированием
  #165 (permalink)  
Старый 24.01.2018, 16:57
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Nexus,
Блиин. Спасибо большое.
Ответить с цитированием
  #166 (permalink)  
Старый 26.01.2018, 13:12
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Пожалуйста дайте совет, как лучше реализовать данную логику:

есть 4 элемента,
если элемент 1 содержит класса "active" - то элементу 3 и 4 назначается класс "hide",
если элемент 2 содержит класса "active" - то элементу 4 назначается класс "hide",
если элемент 3 содержит класса "active" - то элементу 1 назначается класс "hide",
если элемент 4 содержит класса "active" - то элементу 1 и 2 назначается класс "hide".
И соответственно в начале каждой проверки удалять все классы "hide".

Мой не рабочий вариант:
[].forEach.call(pages, function(el, i, p) {

i == pageIndex ? p[i].classList.add("active") : el.classList.remove("active");
			
if (p[0].classList.contains("active")) {
  el.classList.remove("hide");
  p[2].classList.toggle = "hide";
  p[3].classList.toggle = "hide";
} else if (p[1].classList.contains("active")) {
  el.classList.remove("hide");
  p[3].classList.toggle = "hide";
} else if (p[2].classList.contains("active")) {
  el.classList.remove("hide");
  p[0].classList.toggle = "hide";
} else if (p[3].classList.contains("active")) {
  el.classList.remove("hide");
  p[0].classList.toggle = "hide";
  p[1].classList.toggle = "hide";
} else {}

});
Ответить с цитированием
  #167 (permalink)  
Старый 26.01.2018, 13:30
Профессор
Отправить личное сообщение для Nexus Посмотреть профиль Найти все сообщения от Nexus
 
Регистрация: 04.12.2012
Сообщений: 3,791

Я думаю логика у вас неправильная, если все элементы изначально скрыто, то нет необходимости какие-то отдельные скрывать повторно.
Нужно наоборот найти активные и отобразить их.
Ответить с цитированием
  #168 (permalink)  
Старый 26.01.2018, 13:56
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

<style>
.hide { display:none;}
div { display:inline-block;
        color:grey }
.current { color:black; }
</style>
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<script>
var pages = document.querySelectorAll('div');
[].forEach.call(pages, function(el, i, p) {
   p[i].onclick = function() {
        for(var j = 0; j < p.length; j++) { 
           p[j].classList.add("hide"); 
           p[j].classList.remove("current");
        }
        for(var j = i - 1 < 0?0:i-1; j < (i+2 <p.length?i+2:p.length);j++) {      
           p[j].classList.remove("hide");
        }
        p[i].classList.add("current");
   }
});
</script>

Последний раз редактировалось Dilettante_Pro, 26.01.2018 в 14:10.
Ответить с цитированием
  #169 (permalink)  
Старый 26.01.2018, 15:14
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Dilettante_Pro,
спасибо огромнейшее, буду разбирать ваш пример.
Nexus,
извиняюсь за отсутствие ясности в вопросе.
Ответить с цитированием
  #170 (permalink)  
Старый 07.03.2018, 10:20
Аватар для Nlk
Nlk Nlk вне форума
Кандидат Javascript-наук
Отправить личное сообщение для Nlk Посмотреть профиль Найти все сообщения от Nlk
 
Регистрация: 25.12.2016
Сообщений: 146

Такой вот слайдер получился https://codecanyon.net/item/page-sli...lugin/22780197

Последний раз редактировалось Nlk, 26.04.2019 в 00:17.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jquery выборка элементов из переменной winch jQuery 4 15.04.2016 09:09
выборка элементов таблицы и цвет фона xber9 jQuery 10 07.08.2013 20:30
выборка видимых элементов ChikiSt Общие вопросы Javascript 8 01.12.2011 11:26
Выборка элементов у которых есть данные установленные через дата TicTac jQuery 2 02.05.2011 23:45
выборка элементов jetli13 jQuery 9 30.07.2010 13:53