Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: выпадающее меню
 
 автор: defi   (02.08.2010 в 20:27)   письмо автору
 
 

есть такой код выпадающего меню на js:


<script type="text/javascript">
function show(obj, height) {
    var a = document.getElementById('p'+obj);
    var b = document.getElementById('m'+obj);
    document.getElementById('p'+obj).style.display="";
    b.className='sel';
     if (a.offsetHeight < height) {
         a.style.height = (a.offsetHeight + 10) + "px";
         setTimeout (function(){show(obj, height)}, 30);
     }
     else {
         bl=0;document.getElementById('p'+obj).style.overflow="visible"
     }
}

function hide(obj) {
    var a = document.getElementById('p'+obj);
    var b = document.getElementById('m'+obj);
    document.getElementById('p'+obj).style.overflow="hidden";
      if (a.offsetHeight > 1) {
          a.style.height = (a.offsetHeight - 10) + "px";
          setTimeout (function(){hide(obj)}, 30);
      }
      else {
          bl=0;
          b.className='';
          document.getElementById('p'+obj).style.display="none";
      }
}

var bl=0;

function showhide(obj, height) {
    var a = document.getElementById('p'+obj);
      if(bl==1) {return false;}
      bl=1;
      if(a.offsetHeight < height) {
          show(obj, height)
      }
      else {
          hide(obj)
      }
}
</script>
    
<style type="text/css">
#menu {
    width:200px;
    border:1px solid #CCC;
}

.link1 {
    display:block;
    margin:2px;
    padding:3px;
    border:1px solid #CCC;
    background-color:#ccc;
}

.link2 {
    display:block;
    margin:2px;
    padding:3px;
    border:1px solid #CCC;
    background-color:#f6f6f6;
}

#p1, #p2, #p3, #p4 {
    height:0;
    overflow:hidden;
    background-color:#FFF;
}
</style>
    
<div id="menu">
  <a class='link1' id="m1" href='#' onclick="javascript: showhide(1,120);return false;">test1</a>
  <div id="p1"></div>
  <a class='link1' id="m2" href='#' onclick="javascript: showhide(2,90);return false;">test2</a>
  <div id="p2"></div>
  <a class='link1' id="m3" href='#' onclick="javascript: showhide(3,90);return false;">test3</a>
  <div id="p3">
    <a class="link2" href="#">test_a</a>
    <a class="link2" href="#">test_b</a>
    <a class="link2" href="#">test_c</a>
    <a class="link2" href="#">test_d</a>
  </div>
  <a class='link1' id="m4" href='#' onclick="javascript: showhide(4,100);return false;">test4</a>
  <div id="p4"></div>
</div>


когда я нажимаю на ссылку тест1,2 и т.д. у меня слетает class ссылки на которую кликаю, подскажите что нужно в коде подправить чтобы этого не происходило?

  Ответить  
 
 автор: АЯ   (02.08.2010 в 21:11)   письмо автору
 
   для: defi   (02.08.2010 в 20:27)
 

Или уберите в скрипте ВСЁ, что касается переменной b, или определите в стилях правила для класса .sel

  Ответить  
 
 автор: defi   (02.08.2010 в 23:36)   письмо автору
 
   для: АЯ   (02.08.2010 в 21:11)
 

спасибо, получилось, убрал всё то, что касается b.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования