Bonjours,

J'ai le problème suivant avec le menu accordéon et 1 include PHP seulement sous IE :

Le lien sur les images + n'ouvre rien mais 1 click sur les items menu marche. Le - ne me pose pas de problème !

Voici mes codes :

* page menu.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3c.org/TR/1999/REC-html401-19991224/loose.dtd">
<!-- saved from url=(0074)http://www.alsacreations.com/xmedia/tuto/exemples/accordeon/menu_demo.html -->
<HTML lang=en xml:lang="en" xmlns="http://www.w3.org/1999/xhtml">
<HEAD>
<TITLE>Menu accordéon avec jQuery</TITLE>
<META http-equiv=Content-Type content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="menu.css"> 
<!--[if lte IE 6]>
<STYLE type=text/css>LI {
	HEIGHT: 1px
}
</STYLE>
<![endif]-->
<SCRIPT src="scripts/jquery-1.2.1.js" type=text/javascript></SCRIPT>
<script type="text/javascript" src="menu.js"></script>
<META content="Dev-PHP 2.3.2" name=GENERATOR>
</HEAD>
<BODY>
	<?php include'hautM.php'; ?>
</BODY>
</HTML>


* page hautM.php

<?php
echo ' <ul id="navigation">';
echo '        <li><a href="" title="">Item 1</a></li>';
echo '        <li class="toggleSubMenu"><a href="" title="Afficher le sous-menu">Item 2</a>';
echo '            <ul style="display: none;" class="subMenu">';
echo '                <li><a href="" title="">Item 2.1</a></li>';
echo '                <li><a href="" title="">Item 2.2</a></li>';
echo '                <li><a href="" title="">Item 2.3</a></li>';
echo '            </ul>';
echo '        </li>';
echo '        <li class="toggleSubMenu"><a href="" title="Afficher le sous-menu">Item 3</a>';
echo '            <ul style="display: none;" class="subMenu">';
echo '                <li><a href="" title="">Item 3.1</a></li>';
echo '                <li><a href="" title="">Item 3.2</a></li>';
echo '            </ul>';
echo '        </li>';
echo '        <li><a href="" title="">Item 4</a></li>';
echo '  </ul>';    
?>


* page menu.js

    $(document).ready( function () {
        // On cache les sous-menus
        // sauf celui qui porte la classe "open_at_load" :
        $("ul.subMenu:not('.open_at_load')").hide();
        // On selectionne tous les items de liste portant la classe "toggleSubMenu"
    
        // et on remplace l'element span qu'ils contiennent par un lien :
        $("li.toggleSubMenu span").each( function () {
            // On stocke le contenu du span :
            var TexteSpan = $(this).text();
            $(this).replaceWith('<a href="" title="Afficher le sous-menu">' + TexteSpan + '</a>') ;
        } ) ;
    
        // On modifie l'evenement "click" sur les liens dans les items de liste
        // qui portent la classe "toggleSubMenu" :
        $("li.toggleSubMenu > a").click( function () {
            // Si le sous-menu etait deja ouvert, on le referme :
            if ($(this).next("ul.subMenu:visible").length != 0) {
                $(this).next("ul.subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") } );
            }
            // Si le sous-menu est cache, on ferme les autres et on l'affiche :
            else {
                $("ul.subMenu").slideUp("normal", function () { $(this).parent().removeClass("open") } );
                $(this).next("ul.subMenu").slideDown("normal", function () { $(this).parent().addClass("open") } );
            }
            // On empêche le navigateur de suivre le lien :
            return false;
        });
    
    } ) ;


Merci de jeter un œil sur mon problème. Bonne journée à tous.
Désoler c'est encore moi. Voici la page hautM.php


<?php
echo ' <ul id="navigation">';
echo '        <li><a href="" title="">Item 1</a></li>';
echo '        <li class="toggleSubMenu"><a href="" title="Afficher le sous-menu">Item 2</a>';
echo '            <ul style="display: none;" class="subMenu">';
echo '                <li><a href="" title="">Item 2.1</a></li>';
echo '                <li><a href="" title="">Item 2.2</a></li>';
echo '                <li><a href="" title="">Item 2.3</a></li>';
echo '            </ul>';
echo '        </li>';
echo '        <li class="toggleSubMenu"><a href="" title="Afficher le sous-menu">Item 3</a>';
echo '            <ul style="display: none;" class="subMenu">';
echo '                <li><a href="" title="">Item 3.1</a></li>';
echo '                <li><a href="" title="">Item 3.2</a></li>';
echo '            </ul>';
echo '        </li>';
echo '        <li><a href="" title="">Item 4</a></li>';
echo '  </ul>';    
?>

Modifié par kiki03 (26 Jul 2009 - 12:35)
Bonjour,

L'include PHP n'a probablement rien à voir avec ton problème. Mais je peux difficilement t'aider sans voir la page dans son ensemble. Est-ce que tu peux nous fournir une URL de test ?
Bonjour,

Appliquer un height:1px à tous les éléments LI de toutes les pages sans distinction me semble être une bêtise flagrante. Je suppose que ce height:1px est destiné à corriger un problème de rendu particulier à coup de HasLayout (un zoom:1; aurait été plus approprié). Mais appliquer ce correctif à tous les LI de la page est une bêtise, car dans le cas visé ça sera utile, dans d'autres ça sera sans effet... et dans d'autres encore ça peut causer des problèmes.