Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2010, 15:29
Аспирант
Отправить личное сообщение для cristalith Посмотреть профиль Найти все сообщения от cristalith
 
Регистрация: 30.10.2009
Сообщений: 35

изменение ширины он лоад
<ul class="level1">
  <li>text</li>
  <li>text <ul class="level2">
               <li>text</li>
               <li>text</li>
             </ul>
    </li>
</ul>


Как с помощью js сделать чтобы width списка "level2" задавалась "level1 - 100px" ? Это должно происходить при открытии страницы.
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2010, 15:36
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

А зачем тут яваскрипт-то?
<style type="text/css">
	ul.level1,
	ul.level1 ul {
		display: block;
		margin: 0px;
	}
	ul.level1 ul {
		margin-left: 100px;
	}
	ul.level1 li {
		display: block;
		list-style: none outside;
		padding: 0px;
		margin: 3px 0px;

	}
	
	ul.level1 li {background: yellow} ul.level2 li {background: orange} /* для декоративных целей исключительно */
</style>

<ul class="level1"> 
	<li>text</li> 
	<li>text
		<ul class="level2"> 
			<li>text</li> 
			<li>text</li> 
		</ul> 
	</li> 
</ul>
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2010, 15:50
Аспирант
Отправить личное сообщение для cristalith Посмотреть профиль Найти все сообщения от cristalith
 
Регистрация: 30.10.2009
Сообщений: 35

В моем случае, там списки с закругленными уголками и всякой декоративной ерундой. Этот вопрос с заказчиком решили уже.
Спасибо,
но все же остался интерес, как это сделать на js ?
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2010, 15:59
Профессор
Отправить личное сообщение для exec Посмотреть профиль Найти все сообщения от exec
 
Регистрация: 21.01.2010
Сообщений: 1,022

$(window).load(function () {
$('ul.level1').each(function () {
$('ul.level2', this).css('width', $(this).width() - 100);
});
});


Вариант на jQ, на JS многовато писать надо, тем более для примера.
Ответить с цитированием
  #5 (permalink)  
Старый 28.06.2010, 11:23
Аватар для subzey
Пионэр
Отправить личное сообщение для subzey Посмотреть профиль Найти все сообщения от subzey
 
Регистрация: 16.11.2009
Сообщений: 1,322

exec,
Только не .load, а .ready, самого иногда так привычка подводит.

Кстати, с .ready связан небольшой подводный камень. С какой-то-там версии .ready вызывается не по onload, а по DOMContentLoaded (и его аналогов с readyStateChange). Все скрипты в коде к тому моменту уже отработали, но то, что цсс подгрузился - не факт.

Точнее, это зависит от браузера. Ие и файрфокс задерживают выполнение скрипта на, скажем, .width(), пока стиль не подгрузится.
Хром не ждет, в нем при определенной избирательной тормознутости интернетов .width может вернуть неожиданные результаты.
Опера ждет 3 секунды, после чего продолжает выполнение скрипта.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменение ширины div-ов greg jQuery 3 09.05.2010 22:52
Плавное изменение ширины ячейки в таблице fed0R Элементы интерфейса 4 29.07.2009 12:50
Изменение ширины поля input в зависимости от значения AvaGet Общие вопросы Javascript 10 25.12.2008 19:27
Динамическое изменение <input text> baal1988 Events/DOM/Window 4 24.08.2008 17:17
Изменение ширины полосы прокрутки Devoto Общие вопросы Javascript 3 07.07.2008 17:01