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 :

intercepter onclick


Sujet :

JavaScript

  1. #1
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut intercepter onclick
    Bonjour,

    J'ai 2 evènements sur un lien : onMouseDown et onClick.

    Ma question est : dans le code que je vais exécuté dans onMouseDown, est ce que je peux faire quelque chose du style....monLien.onClick = false; ???

    Merci.

  2. #2
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    ou e est ton evenement dont tu souhaites annuler la propagation....

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Expert éminent

    Avatar de denisC
    Profil pro
    Développeur Java
    Inscrit en
    Février 2005
    Messages
    4 050
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 4 050
    Points : 7 641
    Points
    7 641
    Par défaut
    Citation Envoyé par SpaceFrog
    Faut juste savoir ou chercher (je connais pas par coeur). Va falloir que je le mette dans la FAQ... piouf, y'aurait tellement de chose à faire, et mon travail qui avance pas :/

  5. #5
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    Citation Envoyé par denisC
    (je connais pas par coeur)
    comment je suis déçu !

    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  6. #6
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Merci pour la réponse.

    Encore une question suite à ta réponse...

    Dans mon code éxécuté par onMouseDown, comment je fais pour récupérer/référencer mon évènement onclick ? (je sais pas si ca change quelque chose mais je voudrai que ca fonctionne sur firefox)

    Encore merci.

  7. #7
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    pas compris
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  8. #8
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Je reformule.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="#" onmousedown="return deleteItemWithLink(this);" onclick="document.forms['form']['form:_idcl'].value='form:tableau:0:_id22'; document.forms['form'].submit(); return false;" class="lienBouton"><img src="/WebHandicap/images/supprime.gif" alt="Supprimer la ligne" class="lienBouton" /></a></td>
    Mon évènement onMouseDown va s'exécuter en 1er.

    Dans ma fonction deleteItemWithLink, je voudrais faire des traitements mais empécher ce qui se passe dans le onclick.

    A priori, je dois utiliser ca :


    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();
    Mais pour faire ce que je voudrai, faudrait que dans ma fonction deleteItemWithLink(qui est appelé de onMousedown), je puisse faire quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    var event = monObj.getEvent; //ou event serait l'évènement onclick
    event .cancelBubble = true;
    if (event .stopPropagation) event .stopPropagation();

  9. #9
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 637
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 637
    Points : 66 658
    Points
    66 658
    Billets dans le blog
    1
    Par défaut
    DenisC => faut deleguer ... mais chui pas modo
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    attends: tu as un mousedown et un click et tu veux que le 2e soit inactif?
    mais pourquoi donc donc?

    à part ça, faites gaffe aux cancelBubble / stopPropagation; vu d'ici, vous courez à la cata si vous pensez que ça va désactiver le 2e événement

  11. #11
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    ah voui c est vrai !
    ca evite la propagation de l event en question aux elements enfants ou parents c est ca ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  12. #12
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par javatwister
    attends: tu as un mousedown et un click et tu veux que le 2e soit inactif?
    mais pourquoi donc donc?

    à part ça, faites gaffe aux cancelBubble / stopPropagation; vu d'ici, vous courez à la cata si vous pensez que ça va désactiver le 2e événement
    En gros, voilà comment ca marche.
    Si je clique sur mon lien, j'affiche une popup de confirmation.
    Si réponse = oui, j'éxécute, sinon je ne fais rien.

    Le problème : La suppression s'effectue même si je ne réponds pas à la popup à cause de l'évènement onclick (et le code associé) qui est généré automatiquement.

    Vu que c'est du code généré, je peux donc pas intervenir dessus. Le seul endroit où je peux agir, c'est dans le code sur onmousedown. J'ai besoin de contrôler quand même le onclick sans s'y avoir accès

    Finalement, ce que je voudrais faire, c'est bien ce que tu as compris : c'est désactivé le 2e évènement à partir du 1er

  13. #13
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    fais un confirm sur le onclick avec une redirection js vers ta page qui fais la suppression.

    ou alors avec xmlhttprequest

    tu peux pas faire de confirm perso comme ca.
    J'ai essayé deja, c est pas possible.

    En plus ton onclick doit pas etre sur le lien, ca doit venir de la popup ...
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  14. #14
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    Citation Envoyé par siddh
    fais un confirm sur le onclick avec une redirection js vers ta page qui fais la suppression.
    je peux pas faire ca, comme je l'ai dis avant, c'est du code qui est généré. Je peux rien faire dedans, c'est écris automatiquement. Je peux pas y toucher....




    Citation Envoyé par siddh
    ou alors avec xmlhttprequest
    Je suis ouvert à toutes propositions. Je pourrai utiliser ca comment ? je vais chercher de la doc.


    Citation Envoyé par siddh
    En plus ton onclick doit pas etre sur le lien, ca doit venir de la popup ...
    Le onclick est bien sur le lien. Voilà le code source de ma page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="#" onmousedown="return deleteItemWithLink(this);" onclick="document.forms['form']['form:_idcl'].value='form:tableau:0:_id22'; document.forms['form'].submit(); return false;" class="lienBouton"><img src="/WebHandicap/images/supprime.gif" alt="Supprimer la ligne" class="lienBouton" /></a></td>

  15. #15
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    et ta methode deleteItemWithLink ?

    elle fais quoi ?
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  16. #16
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    http://javatwist.imingo.net/test.htm

    (à explorer, bien sûr)

  17. #17
    Expert confirmé
    Avatar de siddh
    Inscrit en
    Novembre 2005
    Messages
    3 868
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Novembre 2005
    Messages : 3 868
    Points : 5 011
    Points
    5 011
    Par défaut
    aie aie caramba !

    ben vi un confirm c est bien
    Alunissage : Procédé technique consistant à déposer des imbéciles sur un rêve enfantin.

    Cours | FAQ | Sources Javascript
    Cours | FAQ | Sources PHP
    Mes Articles

  18. #18
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    voilà le code que j'avais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    function deleteItemWithLink(linkObj) {
        var toDelete = confirm('Voulez-vous supprimer ce frais ?');
        if (toDelete == true) {
          linkObj.onclick();
        }
      }
    J'ai essayé ce que tu m'as donné.
    Merci javatwister ! ca a bien stoppé l'action onclick.

    Malheureusement, ca m'amène à un autre problème...En faisant ca "linkObj.onclick=function(){return false};"
    ca écrase le code pour onclick, or ce qui est généré j'en ai quand même besoin parce que ca fait des initialisations (entre autre)

    Encore une question, est ce que c'est possible de conserver le code avant de l'écraser ? quelque chose du genre :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function save(){};
     
    function deleteItemWithLink(linkObj) {
        function save() = linkObj.onclick;
        linkObj.onclick=function(){return false};
        var toDelete = confirm('Voulez-vous supprimer ce frais ?');
        if (toDelete == true) {
          save();
        }

  19. #19
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 681
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 681
    Points : 5 221
    Points
    5 221
    Par défaut
    ben écoute, dis une fois pour toute ce que fait ton onclick! jusqu'ici, on pensait qu'il servait à soumettre un formulaire, point.

    pourquoi ne lances-tu pas sur mousedown les fonctions (d'initialisation, etc.) prévues sur click?
    pas la peine de "sauvegarder";

  20. #20
    Membre à l'essai
    Inscrit en
    Avril 2002
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 24
    Points : 13
    Points
    13
    Par défaut
    d'abord javatwister merci pour ton aide.

    Voilà le code que j'ai dans mon onclick (qui est généré automatiquement...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td><a href="#" onmousedown="return deleteItemWithLink(this);" onclick="document.forms['form']['form:_idcl'].value='form:tableau:0:_id22'; document.forms['form'].submit(); return false;"></a></td>
    En fait, j'ai un tableau qui présente des éléments. Et sur chaque ligne, il y a ce code ci-dessus, qui permet de supprimer l'élément du tableau (et en BDD) (Ce code est "customisé" suivant la ligne)

    Ensuite, j'image que ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.forms['form']['form:_idcl'].value='form:tableau:0:_id22';
    ca permet d'identifier la ligne cliquée.


    pourquoi ne lances-tu pas sur mousedown les fonctions (d'initialisation, etc.) prévues sur click?
    Je peux pas faire ca, vu que c'est du généré, je peux pas deviné à l'avance ce qu'il va générer car ce qu'il génère c'est fonction des éléments dans le tableau et du nombre d'éléments...

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Interception onclick sur un input de type bouton
    Par Aerofly dans le forum jQuery
    Réponses: 5
    Dernier message: 11/01/2012, 09h08
  2. Intercepter evenement onClick
    Par Lapinpanda dans le forum jQuery
    Réponses: 3
    Dernier message: 16/07/2010, 15h34
  3. [ASP.NET] Interception d'un événement "onclick"
    Par Skyou dans le forum ASP.NET
    Réponses: 2
    Dernier message: 05/05/2010, 18h19
  4. Modification de l'évènement OnClick
    Par MrJéjé dans le forum C++Builder
    Réponses: 9
    Dernier message: 22/08/2002, 12h52
  5. Un Sender peut-il s'auto-détruire lors d'un onClick?
    Par Flo. dans le forum C++Builder
    Réponses: 2
    Dernier message: 17/07/2002, 10h31

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