IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

rollover annulation / restoration


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut rollover annulation / restoration
    Hello,

    question un peu tricky sur une méthode pour faire quelque chose d assez simple sur le papier mais que je galère a intégrer

    (AJAX/mootools/PHP inside)

    voila , je dois intégrer une charte graphique un peu pointue pour un site avec arrondis et dégradé a gogo.

    Sur les pages, j ai des sous menus qui chargent des pages en ajax

    chaque élément de sous menu est un div avec une partie gauche (arrondi graphique, une partie centrale : couleur de fond et lien) , et une partie droite (arrondi graphique)

    le tout contient biensur un joyeux rollover qui change les classes CSS des trois parties on the fly.

    je simplifie volontairement mon code, je cherche une piste car qq chose m échappe dans le methodologie

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    	<div id="menu_block_1" onmouseover="javascript:MakeCornerOver('monelement');" onmouseout="javascript:MakeCornerOut('monelement');" class="menu_block">
    		<div class="cornerleftpro" id="left_monelement"></div>
    		<div class="center_menu" id="menu_c_monelement"><a href="javascript:ShowProfile('monelement')" id="menu_link_{$ajax_link}">Mon lien</a></div>
    		<div class="cornerrightpro" id="right_monelement"></div>
    	</div>
    le js

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    function MakeCornerOver(id) {
    				$('left_' + id ).className='cornerleftpro_over';
    				$('right_' + id ).className='cornerrightpro_over';
    				$('menu_c_' + id).className='center_menu_over';
     
    			}
     
    			function MakeCornerOut(id) {
    				$('left_' + id ).className='cornerleftpro';
    				$('right_' + id ).className='cornerrightpro';
    				$('menu_c_' + id).className = 'center_menu';
     
    			}
     
    			function SetActivePage(id) {
    				$('left_' + id).className  = 'cornerleftpro_active';
    				$('right_' + id).className = 'cornerrightpro_active';
    				$('menu_c_' + id).className = 'center_menu_active';
     
    				$('menu_block_' + id).onmouseover = null;
    				$('menu_block_' + id).onmouseout = null;
    				$('menu_link_' + id).href = 'javascript:;';
     
    			}
    			function UnSetActivePage(id) {
    				$('left_' + id).className  = 'cornerleftpro';
    				$('right_' + id).className = 'cornerrightpro';
    				$('menu_c_' + id).className = 'center_menu';
     
    				$('menu_block_' + id).onmouseover = ????
    				$('menu_block_' + id).onmouseout = ???;
    				$('menu_link_' + id).href = 'javascript:ShowProfile( "' + id + '");';
     
    			}
    alors , la ou c est chaud, c est que quand on clique sur un element du menu, la page devient "active" et du coup plus de lien (pas cliquable) , et les rollover s en vont.
    jusque la , tout va bien

    par contre j ai du détuire mes callback sur onmouseover et onmouseout pour faire ca, comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $('menu_block_' + id).onmouseover = null;
    $('menu_block_' + id).onmouseout = null;

    la difficulté , comme le tour est en ajax, et de restaurer les onmouseover , onmouseout apres coup (les ??? dans mon code plus haut)

    j ai bien essayé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $('menu_block_' + id).onmouseover = MakeCornerOver(id);
    mais on dirais que Javascript cherche a placer id alors que c est une variable locale, du coup je me retrouve avec une erreur id est indéfini

    j ai ensuite essayer divers eval , sans arriver a rien de concluant.

    je serais assez embeté de faire une fonction par elements de menu vu le nombre de sous menu, mais faute de mieux si je trouve rien d ici demain , je vais faire ca , meme si je trouve ca nul

    toute idée / suggestion est donc la bienvenue

    Merci d avance

  2. #2
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    Hello,

    je reviens a la charge, n ayant pas trouvé la réponse a mon problème

    personne n a d idée ?


    ps : un modérateur a déplacé mon message dans le sous forum mootools mais mon probleme n est pas vraiment un problème mootools mais plutot un problème javascript de base.

  3. #3
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    hum je pensais pas le problème si dur


    en tous cas pour ceux que ca intéresse, j ai ciblé le problème

    si je veux réactiver les rollover apres les avoir forcer a null

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
    $(id).onmouseover = MakeCornerOver('MyVideos');
    $(id).onmouseout  = MakeCornerOut('MyVideos');
    ne fonctionne pas

    mais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    function RestoreVideosCornerOver(){
     MakeCornerOver('MyVideos');
    }
     
    function RestoreVideosCornerOut(){
     MakeCornerOut('MyVideos');
    }
    $(id).onmouseover = RestoreVideosCornerOver
    $(id).onmouseout  = RestoreVideosCornerOut;
    fonctionne


    le bug vient donc du fait que javascript ne sait pas passer dynamiquement un parametre a la fonction qu on définit sur les evenements mouseover et mouseout, a moins bienentendu, que l on ai définit ces evenement dans les elements html eux meme

    Je repose donc ma question :

    y a t il un moyen de contourner cela ?

    Car ca va me faire bcp de helper fonctions a faire la

    Merci d avance à ceux qui voudront apporter quelque element a ce (mono/dia)logue

Discussions similaires

  1. Too Many versions & Backup-Restore à rallonge
    Par Harry dans le forum Administration
    Réponses: 14
    Dernier message: 30/06/2004, 18h10
  2. [Debutant]Back up et restore
    Par christophebmx dans le forum Administration
    Réponses: 2
    Dernier message: 22/05/2004, 15h53
  3. Annuler des transactions
    Par sgire dans le forum ASP
    Réponses: 2
    Dernier message: 04/05/2004, 09h31
  4. Annuler une suppression
    Par Harbaingan dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 09/04/2003, 14h59
  5. Réponses: 5
    Dernier message: 04/04/2003, 15h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo