Utilisation de 2 oncontextmenu

ViPHP
ViPHP | 1996 Messages

04 janv. 2008, 17:05

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 ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 1339 Messages

04 janv. 2008, 17:18

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 :)
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 353 Messages

04 janv. 2008, 17:25

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. :?

ViPHP
AB
ViPHP | 5818 Messages

04 janv. 2008, 17:28

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>

ViPHP
ViPHP | 1996 Messages

04 janv. 2008, 23:40

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...
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Eléphant du PHP | 353 Messages

04 janv. 2008, 23:53

C'est pas une question de problème, c'est une question de respect des normes :D

ViPHP
ViPHP | 1996 Messages

05 janv. 2008, 00:03

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 ?
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

Mammouth du PHP | 1339 Messages

05 janv. 2008, 02:55

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 :/
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Mammouth du PHP | 1885 Messages

05 janv. 2008, 07:10

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.
La programmation est l'expression de la poésie d'un programmeur
Génération PHP

ViPHP
ViPHP | 1996 Messages

05 janv. 2008, 16:05

Ok merci à vous deux je vais voir cela ce WE.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr

ViPHP
ViPHP | 1996 Messages

07 janv. 2008, 11:44

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.
It is nice to be important but it is more important to be nice
http://www.aureuswebfactory.fr