2012-05-25 2 views
0

Я хочу скрыть и показать тег <p> при наведении на него мыши, но мой код может скрывать тег p и никогда не показывать его снова, почему?jquery: как скрыть и показать

<html> 
    <head> 
<script type="text/javascript" src="jquery.js"></script> 
<script> 
    $(function(){ 
    $("#mouse").mouseover(function(){ 
     if($(this).is(':hidden')){ 
     $(this).show("normal"); 
     } 
     else{ 
     $(this).hide("slow"); 
     } 
    }); 
    }); 
</script> 
    </head> 
    <body bgcolor="white"> 
    <p id="mouse"> 
    test 
    </p> 
</body> 
</html> 
+0

Вы можете использовать функцию переключения вместо показа и скрытия – Vimalnath

+0

Когда вы хотите, чтобы показать это, и когда вы хотите, чтобы скрыть это? Это очень сложно для мыши, что-то, чего там нет. На самом деле, я не подозреваю. Чего вы действительно пытаетесь достичь? –

ответ

4

Поскольку у вас нет события mouseover на скрытом p.

+0

so $ ("# mouse"). Mouseover (функция() не будет работать после того, как #mouse скрыт? – remy

+0

Событие Mouseover не будет работать, если div скрыт с отображением: none и не скрыт с помощью свойства CSS-hover. потому что display: none не будет генерировать поле для div. Обходной путь: использовать видимость: скрытый. Вероятно, именно поэтому toggle ведет себя по-разному. Источник http://api.jquery.com/mouseover/ –

+0

, так как я могу это сделать? Я новый программист jquery, поэтому извините, не могу понять видимость: скрытый даже после того, как я использую google. – remy

1

Когда элемент скрыт, вы не можете использовать какое-либо событие с ним. Было бы лучше, если бы вы не скрывали «p», но скрывали только элемент в «p».

Пример

<script> 
$(document).ready(function() { 
    $(".hidden").hover(function() { 
    $(".hidden span").toggle(); 
    }); 
}); 
</script> 

<p class='hidden'>please hover<span> Hide this text </span></p> 
+0

Спасибо большое!! – remy

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