2013-03-15 2 views
0

после щелчка объекта и ли, содержащего div с переключателями, показано, что он не скрывает, и радиоприемник не закрывает li.Как скрыть li при щелчке по радио

см. Пример кода ниже. подумайте, что я не нацелился на правильные объекты/класс, чтобы делать то, что хочу. должен ли я использовать id вместо имени класса css??

//click to show li (in css i have put display to none) 
     $('div.ribbonBoxarrow').click(function() { 
     $('.ribbonBoxarrow li').show('medium'); 
     return false; 
     }); 
// once you leave the div (works thanks kevin. selctor missing 
     $('.ribbonBoxtab').mouseleave(function() { 
     $('ribbonBoxarrow li').hide('slow'); 
     return false; 
     }); 
//if a radio buttn is clicked the hide li still not working 
     $("input[name='domain_ext']").each(function() { 
     $('.ribbonBoxarrow li').hide('slow'); 
     return false; 
     }); 

CSS -----

/* Ribbon radio drop box */ 
.ribbontableBox { 
    width: 62px; 
    height: 50px; 
    float: left; 
    margin-left: 7px; 
    margin-top: 7px; 
    border: 1px solid #f1f1f1; 
    border-radius: 2px; 
} 
.ribbontableBox:hover { 
    width: 62px; 
    height: 50px; 
    float: left; 
    margin-left: 7px; 
    margin-top: 7px; 
    border: 1px solid #72B8E2; 
    background: #AED5F4; 
} 

.ribbonBoxtext { 
    width:52px; 
    height:50px; 
    float: left; 
} 

.ribbonBoxtext ul { 
    display: block; 
    list-style: none; 
} 

.ribbonBoxarrow { 
    width: 10px; 
    height: 50px; 
    float: left; 
} 
.ribbonBoxarrow ul { 
    width: 10px; 
    display: block; 
    height: 50px; 
    background: #ffffff; 
} 
.ribbonBoxarrow ul:hover { 
    background: #AED5F4; 
} 

.ribbonBoxarrow li { 
    background: #ffffff; 
    height: 110px; 
    width: 120px; 
    display: none; 
    position: relative; 
    top:45px; 
    left: -57px; 
    border: 1px solid #72B8E2; 
} 
/*.ribbonBoxarrow ul:hover > li { 
    background: #ffffff; 
    height: 110px; 
    width: 120px; 
    display: block; 
    position: relative; 
    top:45px; 
    left: -57px; 
    border: 1px solid #72B8E2; 
}*/ 

.ribbonBoxtab { 
    background: #555555; 
    border: 1px solid #eeeeee; 
    height: 0px; 
    width: 180px; 
    position: relative; 
    display:inherit; 
} 


</style> 

HTML -----------------

<div class="ribbonBoxarrow"> 
    <ul class="ribbonBoxarrow"> 
     <li> 

     <div class="ribbonBoxtab"> 
      <table class="domain_ext_table"> 
      <tr> 
       <td><label> 
       <input type="radio" name="domain_ext" value="all"/> 
       <span>All</span></label></td> 
       <td><label> 
       <input type="radio" name="domain_ext" value=".co.uk"/> 
       <span>.co.uk</span></label></td> 
       </tr> 
      <tr> 
      <td><label> 
       <input type="radio" name="domain_ext" value=".com"/> 
       <span>.com</span></label></td> 
       <td><label> 
       <input type="radio" name="domain_ext" value=".rnet"/> 
       <span>.net</span></label></td> 
       </tr> 
       <tr> 
       <td><label> 
       <input type="radio" name="domain_ext" value=".briz"/> 
       <span>.biz</span></label></td> 
       <td><label> 
       <input type="radio" name="domain_ext" value=".orrg"/> 
       <span>.rorg</span></label></td> 
       </tr> 
       <tr> 
       <td><label> 
       <input type="radio" name="domain_ext" value=".trr"/> 
       <span>.org.ruk</span></label></td> 
       <td><label> 
       <input type="radio" name="domain_ext" value=".rrrt"/> 
       <span>.thh</span></label></td> 
      </tr> 
      </table> 
     </div> 
    </li> 
    </ul>   
</div> 

+1

вы можете добавить несколько примеров из вашей HTML также. –

+1

Где находится html? – gdoron

+0

СРЮ просто добавил он – alwayslearning

ответ

4

В коде отсутствует код .. Также я изменил .each на .click для обработчиков событий радио. Если загрузка этот код на странице загрузки вы должны обернуть его document.ready

$(document).ready(function(){ 
    //click to show li (in css i have put display to none) 
      $('div.ribbonBoxarrow').click(function() { 
       $('.ribbonBoxarrow li').show('medium'); 
       return false; 
      }); 
    // once you leave the div (which is contained in the above li hide. 
      $('.ribbonBoxtab').mouseleave(function() { 
       $('.ribbonBoxarrow li').hide('slow'); //missing . 
       return false; 
      }); 
    //if a radio buttn is clicked the hide li 
      $("input[name='domain_ext']").click(function() { //changed .each to .click 
       $('.ribbonBoxarrow li').hide('slow'); //missing . 
       return false; 
      }); 
}); 

рабочего примера:http://jsfiddle.net/3wkpZ/

+0

, который исправил выключение мыши, но onclick для радио все еще дает мне проблемы. – alwayslearning

+0

@ alwayslearning Thats, потому что обработчик события 'click' не подключен. Я обновил изменение '.each()' to '.click' –

+0

спасибо, что kevin должен спать, должен закончить это, все еще не делая этого. попробовал его с помощью $ ("input [type = 'radio']"). click (function() {no luck – alwayslearning