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

JavaScript Discussion :

Appel d'une fonction JS Via un Menu Contextuel


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de Biboude
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 30
    Par défaut Appel d'une fonction JS Via un Menu Contextuel
    Bonjour à tous !

    Après de NOMBREUSEEE recherche sur le net ! Je suis toujours à la recherche d'une solution.

    Je m'explique ça fais maintenant plus de trois jours que je recherche le moyen de faire correspondre un click dans un menu contextuel à une fonction en JS je touche au but.

    Mais malheureusement j'ai l'impression de tournée en rond.
    (Je vous voie venir avec vos tuto de menu contextuel en Jquery en html simple etc .. c'est vue et revue (Et en plus le PB n'est pas là !) )

    J'utilise une librairie nommé DHTMLX qui fournie des fonctions lié au menu contextuel. Donc j'ai mis en place tout ce bazar

    Mais il y a un mais ! Quand je click (Gauche) sur l'une de mes div (qui son doté de onclick() je sais c'est moche xD ) Baaaaa... Il ne ce passe rien.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!-- Menu Contextuel -->
     
        <div id="menuData" style="display: none;">
     
            <div id="m1" text="File">
     
                <div id="m11" text="Cut" img="cut.gif" imgdis="cut_dis.gif" onclick="cut();"><hotkey>Ctrl+X</hotkey></div> 
     
                <div id="ms1" type="separator"></div> // a separator
     
                <div id="m12" text="Copy" img="copy.gif" imgdis="copy_dis.gif" onclick="TEST();"><hotkey>Ctrl+C</hotkey> </div> 
                <div id="m13" text="Paste" img="paste.gif" imgdis="paste_dis.gif" onclick="paste();"><hotkey>Ctrl+V</hotkey></div> 
            </div>
        </div>
    <!---------------->

    J'ai testé beaucoup de solution et je reste sans solution (Je tient a précisé que mes fonctions fonctionne très bien a part !)

    Le plus bizarre c'est que l'lorsque j'essai d'accédé a l'un de mes éléments via un GetElementById il me revoie une erreur comme quoi mon contextemenu est "null"

    Pour ce qui est du 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
    36
    37
    38
    39
    40
    41
    42
    //#region MENUX
     
        var menu = new dhtmlXMenuObject(); // Création de l'objet Menu
        menu.setIconsPath("./Scripts/codebase/imgs/"); // Charge imgs
        menu.renderAsContextMenu();
        //menu.loadStruct("./Scripts/codebase/dhxmenu.xml?e=" + new Date().getTime()); // Load structure Menu XML file
        menu.loadFromHTML("menuData", true); // Load HTML Structure    
        var event_id, cb_date, cb_isCopy, cb_section = null;
     
        scheduler.attachEvent("onContextMenu", function (event_id_loc, native_event_object) { // appel du Menu context
            event_id = event_id_loc;
            cb_date = scheduler.getActionData(native_event_object).date;
            cb_section = scheduler.getActionData(native_event_object).section;
     
            /* Menu position */
            var posx = 0;
            var posy = 0;
            if (native_event_object.pageX || native_event_object.pageY) {
                posx = native_event_object.pageX;
                posy = native_event_object.pageY;
            } else if (native_event_object.clientX || native_event_object.clientY) {
                posx = native_event_object.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
                posy = native_event_object.clientY + document.body.scrollTop + document.documentElement.scrollTop;
            }
     
            /* Menu items */
            if (event_id) {            
                menu.showItem("m11");
                menu.showItem("ms1");
                menu.showItem("m12");
                menu.hideItem("m13");
                menu.hideItem("ms2");
                menu.showContextMenu(posx, posy);
            }
            else {            
                menu.hideItem("m11");
                menu.hideItem("m12");
                menu.showItem("m13");
                menu.hideItem("ms1");
                menu.hideItem("ms2");
                menu.showContextMenu(posx, posy);
            }
    Voilà donc jusque là ça va ! Le menu s'affiche tout va bien sauf que quand je clik !!!! Gauche sur l'une des rubriques, il ne ce passe rien LEL !

    En ce moment je Test ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            if (menu.getItemType("m11").click == true){menu.forEachItem(cut);}
            if (menu.getItemType("m12").click == true){menu.forEachItem(copy);}
            if (menu.getItemType("m13").click == true){menu.forEachItem(paste);}
            menu.forEachItem(copy);
    Idéalement j'aimerais savoir lorsque l'utilisateur click sur la div cut ou copy ou parse ! mais vue que le GetElementById ne marche pas et bien je suis un peu bloquer !

    Maintenait si quelqu'un pouvais m'éclairé un peu je dit pas non.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Bonjour,

    cela fait longtemps que je n'ai pas touché à DHTMLX mais il me semble que pour faire fonctionner le getElementById il faut suffixer l'id par "_object" car DHTMLX renomme les champs. Passer uniquement par des objets DHTMLX devrait fonctionner aussi (menu.getItemXxx).

  3. #3
    Membre averti Avatar de Biboude
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 30
    Par défaut
    Bonjour et merci pour cette réponse rapide Christophe

    Je vais testé ta technique le plus tôt possible. Mais je m'interroge car ça fais quand même trois mois que je suis sur beaucoup de fonctionnalité JS et je n'est a aucun moment utilisé "_"

  4. #4
    Membre averti Avatar de Biboude
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 30
    Par défaut
    Mauvaise nouvelle !

    la technique du "_" ne marche pas il me revoie toujours un null pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     var item = document.getElementById("_m11");

  5. #5
    Membre éprouvé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2003
    Messages
    1 309
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 309
    Par défaut
    Je voulais dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var item = document.getElementById("m11_object");

  6. #6
    Membre averti Avatar de Biboude
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2017
    Messages : 30
    Par défaut
    Encore merci Christophe !

    Mais malheureusement il me revoie toujours un null :/ je désespère

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Appel d'une fonction via une variable
    Par byrong dans le forum ASP.NET
    Réponses: 1
    Dernier message: 19/10/2013, 11h26
  2. Appel d'une fonction via l'invite de commande
    Par Pascale38 dans le forum Général Java
    Réponses: 5
    Dernier message: 09/12/2009, 18h12
  3. Réponses: 1
    Dernier message: 17/12/2008, 08h39
  4. Réponses: 4
    Dernier message: 05/11/2007, 09h19
  5. Appeler une fonction Access via un .bat
    Par kluh dans le forum Access
    Réponses: 12
    Dernier message: 27/11/2005, 23h41

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