2015-02-11 3 views
1

Я не знаю, что случилось с моим скриптом. Почему. Исключитесь, если я его вишу? Я хочу, чтобы он был виден, если он.Показать/скрыть сценарий не работает

<ul class="drop"> 
    <li class="thumb"> 
     Arival 
     <ul class="inside"> 
      <li>První</li> 
     </ul> 
    </li> 
</ul> 

Некоторые JQuery здесь:

$("li.thumb").hover(
    function() { $(this).children().show(); }, 
    function() { $(this).children().hide(); } 
); 

Работа на http://jsfiddle.net/0s7gd6g3/

+0

Это не работает, потому что, как только вы удаляетесь от «Arival», субменю исчезают, поэтому у вас нет шансов добраться до них. Я думаю, вам может потребоваться реструктурировать, как вы хотите, чтобы это работало –

+0

Я думаю, вам нужно '$ (this) .children ('. Inside')' – Satpal

ответ

0

вложенное меню исчезает, потому что существует разрыв между li.thumb и ul.inside элементом. Когда мышь над этим подменю области скрывается, конечно, потому что .thumb больше не зависает и .inside позиционируется абсолютно.

Чтобы исправить это, вы можете уменьшить top положение подменю и вместо того, чтобы переместить его вертикально с набивка верхом значение:

.inside { 
    border: 1px white solid; 
    display: none; 
    position: absolute; 
    width: 190px; 
    top: 37px; 
    left: -2px; 
    z-index: 10; 
} 

Демо:http://jsfiddle.net/0s7gd6g3/8/

Кроме того, вы действительно не нужно JavaScript в этом случае, поскольку это просто и эффективнее CSS usecase:

li.thumb:hover .inside { 
    display: block; 
} 
0

Вы нужно увеличить высоту палец большого пальца так, чтобы при наведении его оставалось, иначе он будет ограничен этим пространством.

Так добавить этот класс:

.thumb { 
    height:100px 
} 

Working Fiddle

1
$(".drop").hover(
    function() { 
     $(this).find('.inside').show(); 
    }, function() { 
     $(this).find('.inside').hide(); 
    } 
); 

Если вы хотите исправить JQuery, это будет делать это для вас. Просто изменил элемент, который запускает hide/show

+0

Это не очень хорошее предложение, так как может быть несколько вложенных подменю с классом '.inside'. – dfsq

+0

Но с ситуацией, выдвинутой ОП, это действительное решение –

+0

Несомненно, верно, только что указал на возможные ловушки. – dfsq

Смежные вопросы