11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,

Je me rends compte que cet effet mootools pose problème à plus d'un ... pourtant, je n'ai pas trouvé de cas pareil au mien !

Mon problème : les slides ne se ferment pas au clic, sur IE seulement (FF nickel).

Voilà mon code :
javascript:

window.addEvent('domready', function() {
Slide()
};

function Slide() {
    var oFirstSlide = new Fx.Slide('firstSlide', { mode: 'vertical' }).hide(); 
         $('firstButton').addEvent('click', function(e) {
            e = new Event(e);
            oFirstSlide.toggle();
            e.stop();
        });
};


HTML

<div id="blockTitle"> 
        <h2><a href="#" id="firstButton">Les fruits</a></h2>
        <div id="firstSlide">
               <div id="contentBlock"> //cette partie est en fait un include (à la mode dotnet) :                                                   l'html varie donc, ce n'est pas toujours des ul/li
                    <ul>
                         <li>fraise</li>
                         <li>pomme</li>
                         <li>poire</li>
                    </ul>
               </div>
        </div>
</div>


Le plus étrange, c'est que si je montre mon slide au démarrage (.show()) alors je peux effectivement le fermer mais pas l'ouvrir par après ! De même, slideIn() _à la place de toggle()_ ne fonctionne pas mais slideOut() oui ! Bref, impossible d'aller dans le sens d'ouveture du slide !

Est-ce que quelqu'un a une idée ? merci !
Finalement, n'ayant pas trouvé de solution ni même de pistes, et développant en dotnet, j'ai opté pour l'ajax control toolkit de MS, qui offre une solution comparable au slide de mootools.

@+
pour IE je crois que ce n'est pas : e = new Event(e);

mais :

e = window.event;

donc :

$('firstButton').addEvent('click', function(e) {
e = e || winodow.event ;
oFirstSlide.toggle();
e.stop();
});
Modifié par Nours312 (14 May 2009 - 13:42)