Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.05.2015, 22:42
Новичок на форуме
Отправить личное сообщение для Vadim7423 Посмотреть профиль Найти все сообщения от Vadim7423
 
Регистрация: 17.02.2015
Сообщений: 5

Упростить код с помощью цикла
Добрый вечер, помогите с кодом:
jQuery(document).ready(function($){
	$('#menu > ul > li:nth-child(1)').hover(function(){
		$('#menu > ul > li:nth-child(1) > ul').css({"position":"absolute", "display":"blcok", "z-index": "1"}).stop(true, true).slideDown(100);
	},
	function(){
		$('#menu > ul > li:nth-child(1) > ul').stop(true, true).slideUp(100);
	});
	$('#menu > ul > li:nth-child(3)').hover(function(){
		$('#menu > ul > li:nth-child(3) > ul').css({"position":"absolute", "display":"blcok", "z-index": "1"}).stop(true, true).slideDown(100);
	},
	function(){
		$('#menu > ul > li:nth-child(3) > ul').stop(true, true).slideUp(100);
	});
})


пытаюсь использовать цикл ничего не получается, код не работает
for(var i = 1; i < = 6; i++){
$('#menu > ul > li:nth-child('+ i +')').hover(function(){
		$('#menu > ul > li:nth-child('+ i +') > ul').css({"position":"absolute", "display":"blcok", "z-index": "1"}).stop(true, true).slideDown(100);
	},
	function(){
		$('#menu > ul > li:nth-child('+ i +') > ul').stop(true, true).slideUp(100);
	});
}

Что не так делаю?
Ответить с цитированием
  #2 (permalink)  
Старый 24.05.2015, 23:07
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Vadim7423,
1.ваше меню не может состоять только из седьмых li.
почему так, читать тут
http://javascript.ru/basic/closure#p...-ispolzovaniya
2.
Сообщение от Vadim7423
"display":"blcok"
нет такой буквы
3.
Сообщение от Vadim7423
пытаюсь использовать цикл
цикл в jquery, чтоб не заморачиваться с пунктом 1. называется each



$(function() {
     $("#menu > ul > li").each(function(indx, element) {
         $(element).hover(function() {
                 $("> ul", this).css({
                     "position": "absolute",
                     "display": "block",
                     "z-index": "1"
                 }).stop(true, true).slideDown(100);
             }),
             function() {
                 $("> ul", this).stop(true, true).slideUp(100);
             }
     })
 });
Ответить с цитированием
  #3 (permalink)  
Старый 24.05.2015, 23:23
Новичок на форуме
Отправить личное сообщение для Vadim7423 Посмотреть профиль Найти все сообщения от Vadim7423
 
Регистрация: 17.02.2015
Сообщений: 5

рони,
Цитата:
(function() {
$("#menu > ul > li").each(function(indx, element) {
$(element).hover(function() {
$("> ul", this).css({
"position": "absolute",
"display": "block",
"z-index": "1"
}).stop(true, true).slideDown(100);
}),
function() {
$("> ul", this).stop(true, true).slideUp(100);
}
})
});
подменю открывается, но не исчезает
Ответить с цитированием
  #4 (permalink)  
Старый 24.05.2015, 23:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Vadim7423
подменю открывается, но не исчезает
сделайте нормальный макет
Ответить с цитированием
  #5 (permalink)  
Старый 24.05.2015, 23:42
Новичок на форуме
Отправить личное сообщение для Vadim7423 Посмотреть профиль Найти все сообщения от Vadim7423
 
Регистрация: 17.02.2015
Сообщений: 5

Сообщение от рони Посмотреть сообщение
сделайте нормальный макет
не представляется возможным, есть задание использовать именно такое меню и такой макет
Ответить с цитированием
  #6 (permalink)  
Старый 24.05.2015, 23:56
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Сообщение от Vadim7423
не представляется возможным,
css
jquery
script
id="menu"
30 строк условно, у вас что рука отсохнет их на форум скопировать?
Ответить с цитированием
  #7 (permalink)  
Старый 25.05.2015, 00:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,109

Vadim7423,
ниже это макет, возьмите из него исправленный скрипт.
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
  <style type="text/css">
  #menu > ul > li > ul {
    display: none;
  }

  </style>
  <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
  <script>
$(function() {
     $("#menu > ul > li").each(function(indx, element) {
         $(element).hover(function() {
                 $("> ul", this).css({
                     "position": "absolute",
                     "display": "block",
                     "z-index": "1"
                 }).stop(true, true).slideDown(100);
             },
             function() {
                 $("> ul", this).stop(true, true).slideUp(100);
             })
     })
 });

  </script>

</head>

<body>
<div id="menu">
    <ul>
        <li>1<ul>
        <li>test1</li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul></li>
        <li>2</li>
        <li>3</li>
        <li>4</li>
        <li>5</li>
        <li>6</li>
    </ul>
</div>

</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 25.05.2015, 08:04
Аватар для ruslan_mart
Профессор
Отправить личное сообщение для ruslan_mart Посмотреть профиль Найти все сообщения от ruslan_mart
 
Регистрация: 30.04.2012
Сообщений: 3,018

Возможно Вас устроит моё меню на CSS: Бесконечноуровневое меню на CSS
Ответить с цитированием
  #9 (permalink)  
Старый 25.05.2015, 16:00
Новичок на форуме
Отправить личное сообщение для Vadim7423 Посмотреть профиль Найти все сообщения от Vadim7423
 
Регистрация: 17.02.2015
Сообщений: 5

Сообщение от рони Посмотреть сообщение
css
jquery
script
id="menu"
30 строк условно, у вас что рука отсохнет их на форум скопировать?
Не понял вопроса, извиняюсь. А так благодарю за помощь
Ответить с цитированием
  #10 (permalink)  
Старый 26.05.2015, 08:25
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Бесконечно-уровневое меню делается на css без скриптов вообще. Разумеется кто-то должен сгенерить его хтмл из дерева.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать код функцией и вызвать её в другой функции. light Общие вопросы Javascript 1 19.09.2014 20:18
Что именно делает код Яндекс метрики? GDR Events/DOM/Window 9 18.08.2014 23:37
помогите упростить код sarkis28 jQuery 12 05.07.2014 22:50
Как с помощью insertAfter вставить html код из переменной? Hurray jQuery 1 06.06.2014 23:06
код нe работает в фаирфохе dadli Javascript под браузер 2 28.01.2012 21:18