Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.03.2014, 16:41
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Установка фона для ближайших родителей (метод .closest())
Здравствуйте всем!
Код:
<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title></title>
  <style>
  
  </style>
  <script src="//code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
 
<ul id="one" class="level-1">
  <li class="item-i">I</li>
  <li id="ii" class="item-ii">II
    <ul class="level-2">
      <li class="item-a">A</li>
      <li class="item-b">B
        <ul class="level-3">
          <li class="item-1">1</li>
          <li class="item-2">2</li>
          <li class="item-3">3</li>
        </ul>
      </li>
      <li class="item-c">C</li>
    </ul>
  </li>
  <li class="item-iii">III</li>
</ul>
<script>
var listItemII = document.getElementById( "ii" );
$( "li.item-a" )
  .closest( "ul", listItemII )
  .css( "background-color", "red" );
  
$( "li.item-a" )
  .closest( "#one")
  .css( "background-color", "green" );
  
</script>
 
</body>
</html>

Поведение первого блока скрипта предсказуемо:
$( "li.item-a" )
  .closest( "ul", listItemII )
  .css( "background-color", "red" );

Вопрос вызывает вторая часть:
$( "li.item-a" )
  .closest( "#one")
  .css( "background-color", "green" );

Метод .closest( "#one") находит ближайший ul с id "one" и применяет к нему (в т.ч., естественно, к его детям) зелёный фон. Видно, что это контейнер всего представленного списка. Так почему же вследствие работы второй части кода весь список не окрашивается в зел. цвет? Ведь правило установления зел. фона идёт после правила установления красного.
Ответить с цитированием
  #2 (permalink)  
Старый 21.03.2014, 16:52
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Boolean_Type
(в т.ч., естественно, к его детям)
Ниче подобного. Свойство background не наследуется. Тебе кажется что наследуется, потому что по умолчанию элементы имеют прозрачный background, то есть под ним виден фон предков.

Собственно в этом то и причина твоего недоумения.
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 21.03.2014, 17:09
Аспирант
Отправить личное сообщение для Boolean_Type Посмотреть профиль Найти все сообщения от Boolean_Type
 
Регистрация: 02.02.2014
Сообщений: 48

Сообщение от danik.js Посмотреть сообщение
Свойство background не наследуется.
danik.js, спасибо большое!
Упустил вот это:
http://htmlbook.ru/samcss/nasledovanie

Последний раз редактировалось Boolean_Type, 21.03.2014 в 17:21.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установка цвета через функцию .css() сбрасывает цвет для :hover xintrea jQuery 4 18.08.2012 15:38
public метод для плагина Ichigeki jQuery 1 16.02.2012 19:07
установка checked для checkbox(проблема с условием) kendrick38 Элементы интерфейса 1 26.09.2011 20:42
JSON или JSONP для запросов на другой сервер? Метод GET, для длинных сообщений? Kotakota jQuery 5 23.08.2011 23:12
Как использовать спрайты для Inline-блоков в качестве фона в IE6? Nominus umbra (X)HTML/CSS 2 11.06.2010 21:58