1 votes

problème avec le passage de la souris et le masquage de certains éléments

J'essaie d'utiliser jquery et blueprint css pour effectuer une tâche simple (à mon avis), qui est illustrée dans le code ci-dessous. En gros, j'ai une liste d'éléments, et je veux avoir un X à la fin de chaque élément pour que les éléments puissent être supprimés, je voudrais aussi que le X apparaisse seulement si l'utilisateur passe la souris sur les éléments de la liste. Le passage de la souris fonctionne quelque peu, mais lorsque je m'approche du X pour cliquer, il disparaît pour une raison quelconque. Blueprint css est utilisé pour le positionnement. Le code est le suivant, il devrait fonctionner si on le branche dans un fichier html vierge :

<head>
    <style type="text/css">
    .delete{
        display:none;
    }
    .entry{
        list-style:none;
    }
    </style>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js"></script>
    <link rel="stylesheet" href="http://github.com/joshuaclayton/blueprint-css/raw/63795c8bfe31cbbfad726f714bf8d22770adc7ad/blueprint/screen.css" type="text/css" media="screen, projection">
    <script type="text/javascript">
    $(function(){
        $('.entry').live("mouseover", function(){
            $(this).find('.delete').css({'display':'inline'});
        }).live('mouseout', function(){
            $(this).find('.delete').css({'display':'none'});
        });
    });
    </script>
</head>
<div id="list span-24 last">
<ul>
    <li class="entry"><div class="span-22">Something some thing some thing some thing some thing</div><div class="span-2 last"><a class="delete">X</a></div></li>
</ul>
</div>

2voto

theIV Points 12999

Le site span applique un float:left à l'élément auquel il est appliqué. Dans votre cas, puisque vous avez l'élément span à l'intérieur de votre li le li n'a pas de hauteur - elle est remplie d'éléments flottants.

Je ne suis pas un expert en matière de bulles événementielles en javascript, mais je suppose que la raison pour laquelle cela fonctionne est que l'événement n'apparaît que lorsque l'on passe sur l'écran. span-22 et à la seconde où vous en sortez, puisque le li n'a pas de hauteur, vous ne pourrez jamais rouler sur votre suppression.

Pour faire court, vous pouvez soit donner une hauteur à votre li ou appliquer le schéma directeur .clearfix à tous les li s.

EDIT : Il existe probablement d'autres moyens de résoudre ce problème, mais ce sont les premiers qui me viennent à l'esprit.

J'espère que cela vous aidera.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X