Page 1 sur 1

Utilisation de 2 oncontextmenu

Posté : 04 janv. 2008, 17:05
par Aureusms
Bonjour,

Le titre n'est pas très explicite alors je vais tenter de m'expliquer.
J'ai créé des petits menu ouvrables via clic droit grâce à la commande oncontextmenu. Pour cette partie tout va bien.

Mon problème vient de l'utilisation en cascade :

Code : Tout sélectionner

<div oncontextmenu="menu_clic_droit('menu_general'); return FALSE;"> <li oncontextmenu="menu_clic_droit('menu_li1'); return FALSE;">liste 1</li> <li oncontextmenu="menu_clic_droit('menu_li2'); return FALSE;">liste 2</li> <li oncontextmenu="menu_clic_droit('menu_li3'); return FALSE;">liste 3</li> </div>
Tout se passe bien quand je clic droit sur la balise <div> mais quand je clique sur <li> il me lance deux fois la fonction : une fois menu_clic_droit('menu_li3') (si <li> #3 choisie) et une autre fois menu_clic_droit('menu_general'). Je pense que c'est normal mais je voudrais annuler le double emploi sans multiplier le nombre de fonction. Est ce possible ?

Posté : 04 janv. 2008, 17:18
par Elie

Code : Tout sélectionner

<div> <span oncontextmenu="menu_clic_droit('menu_general'); return FALSE;">Général</span> <li oncontextmenu="menu_clic_droit('menu_li1'); return FALSE;">liste 1</li> <li oncontextmenu="menu_clic_droit('menu_li2'); return FALSE;">liste 2</li> <li oncontextmenu="menu_clic_droit('menu_li3'); return FALSE;">liste 3</li> </div>
:) Ca te convient pas ?

Sinon tu peux faire un bon bidouillage ...

Desactiver menu_clic_droit('menu_general'); si il y a un onmouseover sur un li :)

Posté : 04 janv. 2008, 17:25
par yaug
Bonjour.

Pourquoi ne pas remplacer les divs par des ul aussi histoire d'être correct?

/me s'en va après ce post n'apportant pas la solution. :?

Posté : 04 janv. 2008, 17:28
par AB
Normalement les balises <li> sont encadrées par des balises <ul>. Et si tu as plusieurs menus la bonne syntaxe serait

Code : Tout sélectionner

<div> <ul> <li>lien1 menu 1</li> ... </ul> <ul> <li>lien1 menu 2</li> <li>lien2 menu 2</li> </ul> </div>

Posté : 04 janv. 2008, 23:40
par Aureusms
Du calme :lol:
Je n'ai aucun problème avec l'HTML car les <li> indiqués servent uniquement pour mes CSS.

Si vous voulez plus d'information, imaginez que la <div> face 100%, les <li> remplissent 30%. Aussi quand je clique sur les 2/3 restant je voudrais avoir menu_clic_droit('menu_general'); et quand je clique sur un des <li>, activer le menu des <li>.

Actuellement en cliquant sur les <li> les deux menus s'affichent.

Desactiver menu_clic_droit('menu_general'); si il y a un onmouseover sur un li
Elie ton idée est pas mal mais comment retourner une valeur d'inactivation d'une fonction en particulier? Là cela sort de mes connaissances...

Posté : 04 janv. 2008, 23:53
par yaug
C'est pas une question de problème, c'est une question de respect des normes :D

Posté : 05 janv. 2008, 00:03
par Aureusms
Oui si tu veux mais dans ton cas, tu pourras afficher des listes à puces. Dans mon cas je transgresse (bouh le vilain) la règle pour me servir que de leur faculté de positionnement. Les balises <ul> ou <ol> me sont donc totalement inutiles. J'aurais pu mettre des balises <p> mais j'ai un caractère anticonformiste... :lol:

Une idée sur le réel problème ?

Posté : 05 janv. 2008, 02:55
par Elie
Elie ton idée est pas mal mais comment retourner une valeur d'inactivation d'une fonction en particulier? Là cela sort de mes connaissances...

Code : Tout sélectionner

<div onmouseover="menu_div(1)" oncontextmenu="affiche_div()"> <li><div onmouseover="menu_div(0)" oncontextmenu="affiche_li()">
Et tu fais 2 fonctions

Code : Tout sélectionner

menu_div(i) { affiche_div = i; } affiche_div() { if(affiche_div == 1) { dfefefe } }
C'est du bidouillage a la con :/

Posté : 05 janv. 2008, 07:10
par Xenon_54
Peut-être:

http://www.trendskitchens.co.nz/jquery/contextmenu/
ou
http://developer.yahoo.com/yui/menu/#usingcontextmenu

En utiliser les fonctions proposées par ces librairies, tu pourras attacher tous les eventHandler que tu veux sans te casser la tête et de manière accessible.

Posté : 05 janv. 2008, 16:05
par Aureusms
Ok merci à vous deux je vais voir cela ce WE.

Posté : 07 janv. 2008, 11:44
par Aureusms
Bien je vous remercie déjà pour votre aide.
Les deux liens explique comment manipuler les DOM pour éviter le problème que j'ai. J'ai suivi le conseil et est resolu...

Merci encore Xénon_54.