С Новым годом! Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422

Проверка состояния стилей элемента

06.01.2019, 21:50. Показов 3039. Ответов 18

Студворк — интернет-сервис помощи студентам
Всем привет, не хватает интелекта составить условие на проверку состояния стиля html тэга

JavaScript
1
2
3
4
5
$hidden_elements = $("menu li");
 
if($hidden_elements.css = display: none){
$hidden_elements = addClass....
}
условие по такому типу нужно =)

Добавлено через 2 часа 30 минут
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$(document).ready(function() { // Ждём загрузки страницы
 
$hidden_a = $("menu li a");
 
$hidden_elements = $("menu li");
 
if($hidden_elements.css('display') == 'none'){
    $hidden_elements.addClass("hidden_elements");
}
 
 
$hidden_a.on('click', function() {
     if ($(".hidden_elements")) {
        for ($i = 1; $i < 4; $i++) {
            $hidden_elements.css("display", "block");
        }
     }
});
    
});

Как конкретной присвоить?

Добавлено через 42 минуты
В смысле нужно указать на конкретный $hidden_elements.css("display", "block"); А то display block ко всем применяется..
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2019, 21:50
Ответы с готовыми решениями:

Проверка состояния checkbox
&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0 Transitional//EN&quot;&gt; &lt;HTML&gt; &lt;HEAD&gt; &lt;TITLE&gt;Поштова форма&lt;/TITLE&gt; &lt;META...

Проверка состояния радиобаттона
Здравствуйте Есть группа радиобаттонов с именем name=&quot;shipping_rate_id&quot; Нужно проверить состояние - если не один радиобаттон не нажат,...

Изменение CSS3 стилей элемента при наведении на другой
Доброе время суток, нужна помощь. Есть новости которые разделены на блоки при наведении на заголовок новостей картинка новости опускается в...

18
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
07.01.2019, 04:41
BlacKCheT, Не совсем понятно что вы пытаетесь сделать. Используйте классы. Большую часть работы можно переложить на css, а при клике добавлять класс active для текущего li.

$("menu li") - здесь вы получаете набор элементов, которые подходят под данный селектор, не известно что вернет проверка css для всего набора.

if ($(".hidden_elements")) {

Тоже самое возвращается объект - набор элементов, который всегда будет приводиться в true, если уже делаете проверку, то нужно проверять на количество элементов в наборе if ($(".hidden_elements").length) {, с циклом тоже самое. При каждой итерации вы обращаетесь ко всему набору элементов, даже не используя итератор $i, кстати почему через доллар, как правило так называют переменные, содержащие jquery объект.
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
07.01.2019, 06:58  [ТС]
Хочу сделать подобие выпадающего меню. есть 8 блоков в котрых все по типу ul>li. Все li это категория с подкатегориями.. т.е

ul>li(1)- это название основной категории,li(2)- это подкатегория, li(3),li(4) по типу подкатегории...
0
 Аватар для sad67man
2603 / 1507 / 689
Регистрация: 23.08.2015
Сообщений: 3,814
07.01.2019, 07:27
BlacKCheT,
HTML5
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
<nav>
  <ul>
    <li>
      <a href="#">Категория_1</a>
      <ul>
        <li>
          <a href="#">Подкатегория_1_1</a>
          <ul>
            <li>
              <a href="#">Подкатегория_1_1_1</a>
            </li>
            <li>
              <a href="#">Подкатегория_1_1_2</a>
            </li>
            <li>
              <a href="#">Подкатегория_1_1_3</a>
            </li>
            <li>
              <a href="#">Подкатегория_1_1_4</a>
            </li>
          </ul>
        </li>
        <li>
          <a href="#">Подкатегория_1_2</a>
          <ul>
            <li>
              <a href="#">Подкатегория_1_2_1</a>
            </li>
            <li>
              <a href="#">Подкатегория_1_2_2</a>
            </li>
            <li>
              <a href="#">Подкатегория_1_2_3</a>
            </li>
            <li>
              <a href="#">Подкатегория_1_2_4</a>
            </li>
          </ul>
        </li>
        <li>
          <a href="#">Подкатегория_1_3</a>
        </li>
        <li>
          <a href="#">Подкатегория_1_4</a>
        </li>
      </ul>
    </li>
    <li><a href="#">Категория_2</a></li>
    <li><a href="#">Категория_3</a></li>
    <li><a href="#">Категория_4</a></li>
  </ul>
</nav>
JavaScript
1
2
3
4
5
6
7
$('nav a').on('click', function (e) {
  let $ul =  $(this).closest('li').find('>ul');
  if($ul.length) {
    e.preventDefault();
    $ul.stop().slideToggle();
  }
})
https://jsfiddle.net/v43ejy27/
1
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
07.01.2019, 09:07  [ТС]
Да, только все категории и подкатегории в базе)

PHP
1
2
3
4
5
[HTML]
<? foreach ($GLOBALS['cat'] as $cat):?>
                <li style="<? if($cat['parent_id'] > 0) {?>float: left; padding-left: 15px;<?}else{?>display: none<?}?>"><a onclick="return false"; href="/?module=products&action=index&category=<?= $cat['id']?>"><?= $cat['name']?></a></li>
            <? endforeach;?>
[/HTML]
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
07.01.2019, 09:09  [ТС]
Вот база
Миниатюры
Проверка состояния стилей элемента  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
07.01.2019, 13:59
Лучший ответ Сообщение было отмечено BlacKCheT как решение

Решение

Цитата Сообщение от BlacKCheT Посмотреть сообщение
Да, только все категории и подкатегории в базе)
и что?
формируйте массив категорий как-то так
PHP/HTML
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<?php
$data_menu = array();
 
$categories = getCategories(0); //все категории с parent_id = 0;
 
foreach ($categories as $category) {
    $child_data = array();
 
    $child = getCategories($category['category_id']); //  дочерние категории
    if ($child) {
        foreach ($child as $ch) {
            $child_data[] = array(
                'category_id' => $ch['category_id'],
                'name' => $ch['name'],
                'href' => $ch['link']
            );
        }
    }
 
    $data_menu[] = array(
        'category_id' => $category['category_id'],
        'name' => $category['name'],
        'children' => $child_data,
        'href' => $category['link']
    );
}
?>
<nav>
    <ul>
        <?php foreach ($data_menu as $category) { ?>
            <li>
                <a href="#"><?php echo $category['name']; ?></a>
                <?php if (!empty($caterory['children'])) { ?> 
                    <ul>
                        <?php foreach ($category['children'] as $child) { ?> 
                            <li>
                                <a href="<?php echo $child['link']; ?>"><?php echo $child['name']; ?></a>
                            </li>
                        <?php } ?>
                    </ul>
                <?php } ?> 
            </li>
        <?php } ?>
    </ul>
</nav>
это для оного уровня вложености.
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
07.01.2019, 14:50  [ТС]
Благодарю.
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
08.01.2019, 13:30  [ТС]
Что такое getCategories? Т.е из базы вытаскиваю так

PHP
1
$categories = mysqli_query($db, "SELECT * FROM categories WHERE parent_id = '0'");
А тут как?

PHP
1
$child = getCategories($category['category_id']);
Добавлено через 29 секунд
До этого вытаскивал так.

PHP
1
2
3
4
5
$rows = mysqli_query($db, "SELECT * FROM categories ORDER by id");
$GLOBALS['cat'] = [];
while($row = mysqli_fetch_assoc($rows)) {
    $GLOBALS['cat'][] = $row;
}
Добавлено через 15 минут
PHP
1
$child = mysqli_query($db, "SELECT * FROM categories WHERE parent_id > '0'");
Тэк?
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.01.2019, 13:34
Цитата Сообщение от BlacKCheT Посмотреть сообщение
Что такое getCategories?
это ваша функция получения категорий из базы
Цитата Сообщение от BlacKCheT Посмотреть сообщение
WHERE id = '0'");
where parent_id = '0' получаем главные категории

для получения детей where parent_id = 'id родителя'
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
08.01.2019, 13:50  [ТС]
PHP
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
$GLOBALS['data_menu'] = [];
 
//$categories = getCategories(0); //все категории с parent_id = 0;
$categories = mysqli_query($db, "SELECT * FROM categories WHERE parent_id = '0'");
 
foreach ($categories as $category) {
    //$child_data = array();
    $GLOBALS['child_data'] = [];
 
    //$child = getCategories($category['category_id']); //  дочерние категории
    $child = mysqli_query($db, "SELECT * FROM categories WHERE id = parent_id");
    if ($child) {
        foreach ($child as $ch) {
            $GLOBALS['child_data'] = (
                'category_id' => $ch['category_id'], //syntax error, unexpected '=>' (T_DOUBLE_ARROW)
                'name' => $ch['name'],
                'href' => $ch['link']
            );
        }
    }
 
    $GLOBALS['data_menu'] = (
        'category_id' => $category['category_id'],
        'name' => $category['name'],
        'children' => $child_data,
        'href' => $category['link']
    );
}
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.01.2019, 14:03
PHP
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
$GLOBALS['data_menu'] = [];
 
//$categories = getCategories(0); //все категории с parent_id = 0;
$categories = mysqli_query($db, "SELECT * FROM categories WHERE parent_id = '0'");
 
foreach ($categories as $category) {
    $child_data = array();
    
    //$child = getCategories($category['category_id']); //  дочерние категории
    $child = mysqli_query($db, "SELECT * FROM categories WHERE id = parent_id");
    if ($child) {
        foreach ($child as $ch) {
            $child_data[] = array (
                'category_id' => $ch['category_id'], 
                'name' => $ch['name'],
                'href' => $ch['link']
            );
        }
    }
 
    $GLOBALS['data_menu'][] = array (
        'category_id' => $category['category_id'],
        'name' => $category['name'],
        'children' => $child_data,
        'href' => $category['link']
    );
}
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
08.01.2019, 14:12  [ТС]
Ништяк, только дочерние не выводятся теперь)
Миниатюры
Проверка состояния стилей элемента  
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.01.2019, 14:15
Цитата Сообщение от fanatikus Посмотреть сообщение
$child = mysqli_query($db, "SELECT * FROM categories WHERE id = parent_id");
PHP
1
where parent_id = '" . (int)$category['category_id'] .  "'
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
08.01.2019, 14:38  [ТС]
PHP
1
$child = mysqli_query($db, "SELECT * FROM categories WHERE parent_id = '" . (int)$category['category_id'] .  "'");
Тот же эффект.
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.01.2019, 14:46
покажите как выводите
0
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
08.01.2019, 14:50  [ТС]
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<ul>
        <?php foreach ($data_menu as $category) { ?>
            <li>
                <a href="#"><?php echo $category['name']; ?></a>
                <?php if (!empty($caterory['children'])) { ?> 
                    <ul>
                        <?php foreach ($category['children'] as $child) { ?> 
                            <li>
                                <a href="<?php echo $child['link']; ?>"><?php echo $child['name']; ?></a>
                            </li>
                        <?php } ?>
                    </ul>
                <?php } ?> 
            </li>
        <?php } ?>
    </ul>
0
 Аватар для fanatikus
1932 / 1523 / 703
Регистрация: 17.11.2012
Сообщений: 6,585
08.01.2019, 14:53
Лучший ответ Сообщение было отмечено BlacKCheT как решение

Решение

Цитата Сообщение от BlacKCheT Посмотреть сообщение
<?php if (!empty($caterory['children'])) { ?>
опечатка в $category
1
Лучше не лучше, но лучше.
 Аватар для BlacKCheT
16 / 14 / 3
Регистрация: 11.03.2018
Сообщений: 422
08.01.2019, 19:33  [ТС]
Уууу жизнь удалась.. Чем обязан?)

Добавлено через 1 час 29 минут
Только сейчас обратил внимание, что подкатегории выводятся как категории.. т.е сейчас три категории есть в подкатегориях выводит эти 3 категории..

Добавлено через 3 часа 8 минут
No comments, my name is trash...

Вот решение: если кому пригодится..

PHP
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
29
30
31
<?php
//Достаем категории
 
$GLOBALS['data_menu'] = [];
 
//$categories = getCategories(0); //все категории с parent_id = 0;
$categories = mysqli_query($db, "SELECT * FROM categories WHERE parent_id = '0'");
 
foreach ($categories as $category) {
    $child_data = array();
    
    //$child = getCategories($category['category_id']); //  дочерние категории
    $child = mysqli_query($db, "SELECT * FROM categories WHERE parent_id = '" . (int)$category['id'] .  "'");
 
    if ($child) {
        foreach ($child as $ch) {
            $child_data[] = array(
                'category_id' => $ch['category_id'], 
                'name' => $ch['name'],
                'href' => $ch['link']
            );
        }
    }
 
    $GLOBALS['data_menu'][] = array (
        'category_id' => $category['category_id'],
        'name' => $category['name'],
        'children' => $child_data,
        'href' => $category['link']
    );
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.01.2019, 19:33
Помогаю со студенческими работами здесь

Проверка состояния Com -порта
ребят столкнулся с такой проблемой, как открыть закрыть и тд, это все понятно, а вот как проверить условие что в com-порте есть устройство?

Проверка состояния служб
Добрый день! Помогите пожалуйста в решении вопроса. есть задача запустить службы, имена которых находятся например в 1.txt, это...

Проверка состояния сервера
Итак что нам нужно: на форуме имеется текстбокс и 1баттон. и 2 лэйбла. в текстбокс вводим ип сервера или адрес сайта.Нажимаем на...

Проверка состояния дискеты
Доброе утро! Есть такая задача: Разработать на языке ассемблер программу диагностики состояния поверхности дискеты с использованием...

Проверка состояния процесса.
У меня задача проверять состояние выбранного процесса - работает, приостановлен и т.п. По результату проверки выводить сообщение о его...


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

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru