Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
2 / 2 / 9
Регистрация: 12.05.2011
Сообщений: 291
1

Работа с классами нескольких объектов

19.09.2014, 09:57. Просмотров 1424. Ответов 6
Метки нет (Все метки)

Есть две функции, которые убирают / добавляют классы элементам в слайдере.

Каждый элемент имеет атрибуты data-class (класс который задан изначально), data-class2 (класс который нужно добавить) и data-delay (задержка)

Как правильно заставить работать функцию по каждому элементу (h1, h2, span)?
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
function initem()
{
    $('#carousel2 .active *').each(function() {
        var klass = $(this).attr("data-class");
        var klass2 = $(this).attr("data-class2");
        var delay = $(this).attr("data-delay");
        
        if (delay > 0) 
        {   
            setTimeout(function() {
                $(this).removeClass(klass2);
                $(this).addClass(klass);
            }, delay);
        } else {
            $(this).removeClass(klass2);
            $(this).addClass(klass);
        }
    });
 
}
 
function outitem()
{
        var klass = $('#carousel2 .active *').attr("data-class");
        var klass2 = $('#carousel2 .active *').attr("data-class2");
        $('#carousel2 .active *').removeClass(klass).addClass(klass2);
 
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.09.2014, 09:57
Ответы с готовыми решениями:

Работа с классами: массив объектов класса Complex
Здравствуйте,нужна помощь,не знаю,как из класса massiv передать значения (это 4 числа) для...

Работа с классами: создание нескольких экземпляров класса
В общем в ActionScript 3 неочень. Ситуацыя такова: Мне нужно игру на флеше написать(суть игры в...

Работа со свойствами нескольких объектов
Подскажите кто-нибудь..у нескольких компонент есть свойство font. Как мне в одной процедуре...

Видимость объектов между классами
Есть 2 класса и мувиклип "pole" на сцене. К сцене привязан класс Main. постораясь конкретно...

6
7 / 7 / 6
Регистрация: 30.12.2009
Сообщений: 43
19.09.2014, 10:30 2
Я бы помог, но честно говоря ничего не понял)
0
2 / 2 / 9
Регистрация: 12.05.2011
Сообщений: 291
19.09.2014, 10:43  [ТС] 3
Мне нужно взять класс из трех объектов одного родителя:
HTML5
1
2
3
4
5
<div class="active">
   <h1 data-class="Класс который нужно подставить функцией initem" data-class2="Изначальный класс" data-delay="Задержка - через какое время подставлять класс"></h1>
   <h2 ... те же атрибуты, с другими значениями></h2>
   <span ... те же атрибуты, с другими значениями></span>
</div>
И функцией initem подставить в class значение data-class, с задержкой data-delay.
Функцией outitem я возвращаю значения обратно (в class ставлю data-class2)
0
странник
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
19.09.2014, 12:03 4
напишу что надо делать, на основании того как я понял проблему

чтобы добавить значение в data атрибуты
Javascript
1
$('#current').data('class','Тут значение атрибута data-class');
результат:
HTML5
1
<div id="current" data-class="Тут значение атрибута data-class">
чтобы получить значение data атрибута
Javascript
1
alert( $('#current').data('class');
будет выведен alert с текстом "Тут значение атрибута data-class"

Добавлено через 5 минут
ну еще кое что понял, почему у тебя не работает.
Проблема в setTimeout: 10 самых распространённых ошибок при программировании на JavaScript. Твоя ошибка №1
0
2 / 2 / 9
Регистрация: 12.05.2011
Сообщений: 291
19.09.2014, 13:18  [ТС] 5
Donald28, атрибуты добавлять не нужно - в них уже прописаны данные, нужно выполнять вот что:
при получении родителем класса "active", мы у его дочерних элементов берем их значения из data-class и вставляем его в class, если у дочернего элемента есть data-delay - ставим задержку для addClass.

Потом когда у родителя удаляется class="active", выполняется outitem() - который ставит в class значения из data-class2.
У каждого дочернего элемента атрибуты data-... разные
0
странник
810 / 481 / 108
Регистрация: 28.05.2012
Сообщений: 1,518
Записей в блоге: 2
19.09.2014, 14:49 6
Лучший ответ Сообщение было отмечено 2m2 как решение

Решение

2m2, ну ты что? Мои последние строчки не смотрел?

Javascript
1
2
3
4
5
6
7
8
9
if (delay > 0){
   var self=$(this);
   self.delay = setTimeout(function() {
                self.removeClass(klass2);
                self.addClass(klass);
            }, delay);
   self.delay(); // вот в этой строке у меня сомнения: может надо просто написать self.delay; или она вообще не нужна 
} else {
// далее по коду
P.S. Но не уверен что будет работать. Для одного элемента - будет точно, а вот для нескольких в цикле each - вопрос!!!
1
2 / 2 / 9
Регистрация: 12.05.2011
Сообщений: 291
19.09.2014, 15:02  [ТС] 7
Donald28, вот и для меня основной вопрос чтобы для каждого элемента код работал...
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.09.2014, 15:02

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Передача массива объектов между классами
В общем проблема следующая - есть общий для всех классов ArrayList. Доступ к нему делаю через...

Видимость объектов сцены и их потомков классами
добрый день, очень надеюсь на вашу помощь. Ситуация следующая: есть два класса Unit и Floor....

Передача объектов с одинаковыми классами, но из разных div
Приветствую! Покажите, пожалуйста, пример реализации задачи. Есть генерируемый html вида: &lt;div&gt;...

Как организовать отрисовку разных объектов разными классами?
Начинаю писать программу для отрисовки объектов в разных программах (но пока в одной). Уточню...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.