Javascript.RU

Создать новую тему Закрытая тема
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 06.11.2010, 14:36
Интересующийся
Отправить личное сообщение для Theej Посмотреть профиль Найти все сообщения от Theej
 
Регистрация: 06.11.2010
Сообщений: 11

Нужна помощь. Отзовитесь плз)
Доброго времени суток. В общем проблема такова. В меню сайта, когда человек нажимает на категорию, выходят подразделы, он выбирает один из них и переходит по нему. При переходе на подраздел, категория остается открытой. Я хочу, чтобы все категории снова закрывались при любом переходе. Или хотя бы, чтобы при собственно ручном закрытии категория оставалась закрытой (а то при обновлении страницы он снова открывается). Внизу дан пример сайта. Вот код .js файла
/// Accordion menu 
jQuery(document).ready(function(){ 
function createCookie(name,value,days) { 
if (days) { 
var date = new Date(); 
date.setTime(date.getTime()+(days*24*60*60*1000)); 
var expires = "; expires="+date.toGMTString(); 
} 
else expires = ""; 
document.cookie = name+"="+value+expires+"; path=/"; 
} 

function readCookie(name) { 
var nameEQ = name + "="; 
var ca = document.cookie.split(';'); 
for(var i=0;i < ca.length;i++) { 
var c = ca[i]; 
while (c.charAt(0)==' ') c = c.substring(1,c.length); 
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); 
} 
return null; 
} 

var cookier = readCookie("actr"); 
var actr = cookier ? cookier : 0; 
var cookiel = readCookie("actl"); 
var actl = cookiel ? cookiel : 0; 

jQuery(".accordion h3:eq("+actr+")").addClass("active"); 
jQuery(".accordion p:eq("+actr+")").show(); 

jQuery(".accordion h3").click(function(){ 
var index = jQuery(".accordion h3").index(this); 
createCookie("actr", index, 365); 

jQuery(this).next("p").slideToggle("fast") 
.siblings("p:visible").slideUp("fast"); 
jQuery(this).toggleClass("active"); 
jQuery(this).siblings("h3").removeClass("active"); 

}); 

});

Что тут нужно исправить? помогите плз.
Пример меню на сайте 1program.ru (зайдите в любую категорию поймете).

Последний раз редактировалось Gvozd, 07.11.2010 в 13:00. Причина: отформатировал код
  #2 (permalink)  
Старый 06.11.2010, 14:51
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

А свои мысли есть?
  #3 (permalink)  
Старый 06.11.2010, 14:55
Интересующийся
Отправить личное сообщение для Theej Посмотреть профиль Найти все сообщения от Theej
 
Регистрация: 06.11.2010
Сообщений: 11

Я совершенно новичек в этом деле, прошу помощи у более осведомленных людей)
  #4 (permalink)  
Старый 06.11.2010, 15:01
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

jQuery(".accordion h3").click(function(){
jQuery(this).next("p").slideToggle("fast")
.siblings("p:visible").slideUp("fast");
jQuery(this).toggleClass("active");
jQuery(this).siblings("h3").removeClass("active");

});

- это оставь, а весь остальной код - ненужен.
  #5 (permalink)  
Старый 06.11.2010, 15:08
Интересующийся
Отправить личное сообщение для Theej Посмотреть профиль Найти все сообщения от Theej
 
Регистрация: 06.11.2010
Сообщений: 11

Оставил, щас вообще меню не работает. Поставил, как было. Есть еще предложения?
  #6 (permalink)  
Старый 06.11.2010, 15:14
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Сообщение от Theej Посмотреть сообщение
Оставил, щас вообще меню не работает. Поставил, как было. Есть еще предложения?
что то значит не так сделал.
Вариант попроще(думать совсем не надо):
закомментируй эти две строки:
jQuery(".accordion h3:eq("+actr+")").addClass("active");
jQuery(".accordion p:eq("+actr+")").show();
  #7 (permalink)  
Старый 06.11.2010, 15:19
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

Как вариант:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<div>
   <dl>
      <dt>Level1</dt>
      <dd>1</dd>
      <dd>2</dd>
      <dd>3</dd>
   </dl>
   <dl>
      <dt>Level2</dt>
      <dd>1</dd>
      <dd>2</dd>
      <dd>3</dd>
   </dl>
</div>

<style type="text/css">
dl {border-bottom: 1px dotted #006B88; width: 100px;}
dt {color: #466780; cursor: pointer; font: bold 16px arial;}
dd {display: none; margin: 0px;}
</style>

<script type="text/javascript">
$(function(){
    $('div').each(function(){
        $(this).find('dt').click(function(){
            $(this).nextUntil('dt').slideToggle('fast');
        });
    });
});
</script>

Последний раз редактировалось monolithed, 06.11.2010 в 15:22.
  #8 (permalink)  
Старый 06.11.2010, 15:28
Интересующийся
Отправить личное сообщение для Theej Посмотреть профиль Найти все сообщения от Theej
 
Регистрация: 06.11.2010
Сообщений: 11

micscr, все равно, скрипт вообще не реагирует, так же как и если бы его не было)

monolithed, мне нужно именно изменить в моем)

Простой найдите, что нужно убрать, я сам врятли пойму.
  #9 (permalink)  
Старый 06.11.2010, 15:45
Особый гость
Посмотреть профиль Найти все сообщения от monolithed
 
Регистрация: 02.04.2010
Сообщений: 4,260

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<div class="accordion">
    <h3>меню1</h3>
    <p>1</p>
    <h3>меню2</h3>
    <p>2</p>
</div>
<style type="text/css">
.accordion h3 {cursor: pointer;}
.accordion p {display: none;}
</style>

<script type="text/javascript">
$(function(){
     $(".accordion h3").click(function(){
         $(this).next("p").slideToggle("fast").siblings("p:visible").slideUp("fast");
     });
});
</script>
  #10 (permalink)  
Старый 06.11.2010, 15:52
Интересующийся
Отправить личное сообщение для Theej Посмотреть профиль Найти все сообщения от Theej
 
Регистрация: 06.11.2010
Сообщений: 11

monolithed, вы видимо не поняли чего я хотел . . .
Закрытая тема



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь в JavaScript михаил Общие вопросы Javascript 26 30.10.2013 12:07
нужна помощь тех кто разбирается. igoryk jQuery 2 20.10.2010 19:42
Нужна помощь, если можно Fox-WNT Общие вопросы Javascript 3 27.07.2010 11:38
нужна помощь Sergiy Серверные языки и технологии 2 31.03.2010 20:16
нужна помощь dominosoko Серверные языки и технологии 4 14.03.2010 02:17