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 :

arreter la propagation d'evenement


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut arreter la propagation d'evenement
    bonjour, voici le code :

    index.html
    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
    <html>
        <head>
            <title>mon titre</title>        
            <script src='moveable.js'></script>
        </head>
        <body>
            <div style='height:200px; width:300px; background-color: blue;' id='myDiv'>
                <form>
                    1 <input type='text' /><br/>
                    2 <input type='text' /><br/>
                    3 <input type='text' /><br/>
                    <input type='submit' />
                </form>
            </div>
            <script>moveable(document.getElementById('myDiv'));</script>
        </body>
    </html>
    moveable.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
    var GT_DRAG = false;
    var GT_objInDrag = null;
     
    function moveable(obj) {
        obj.style.position = 'absolute';
        obj.addEventListener('mousedown', GT_begin_drag, false);
        obj.addEventListener('mouseup', GT_end_drag, false);
    }
     
    function GT_begin_drag(e) {
        if(!GT_DRAG) {    
            e.stopPropagation();
            e.preventDefault();
            GT_DRAG = true;
            GT_objInDrag = e.target;
            GT_objInDrag.style.backgroundColor = 'red';
            document.addEventListener('mousemove', GT_lets_drag, false);
        }
    }
     
    function GT_lets_drag(e) {
        if(GT_DRAG) {
            GT_objInDrag.style.left = e.clientX-5;
            GT_objInDrag.style.top = e.clientY-5;
        }
    }
     
    function GT_end_drag() {
        if(GT_DRAG) {
            GT_DRAG = false;
            GT_objInDrag.style.backgroundColor = 'blue';
            GT_objInDrag = null;
        }
    }
    Mon probleme est au niveau de la propagation des evenements, lorsque l'on fait un cliquer-glisser sur la div, on doit pouvoir la déplacer. Cela marche nickel, sauf que lorsque l'on fait un click sur un des éléments à l'intérieur de cette div, on voit que le code de GT_begin_drag est exécuté. J'ai mis un stopPropagation mais celui-ci n'a aucun effet !!!

    au secours !

  2. #2
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    stoppropagation c'est pour Gecko ...

    pour du crossbrowser ici par exemple sur des balises li :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    function stopLis(){
    var AllLis=document.getElementsByTagName('li');
    alert(AllLis.length)
    for(j=0;AllLis[j];j++){
          AllLis[j].onclick=function(evt){
    			  		evt=(evt)?evt:window.event;
    			  		if (evt.stopPropagation) {evt.stopPropagation();}
    					else{evt.cancelBubble = true;}
    					}
    		}
    }
    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 !

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut
    Ah oui j'ai oublié de préciser que mon prog ne fonctionne QUE sur FIREFOX. Je ne veux pas d'IE7 !!!

  4. #4
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    peu importe tu peux adapter ce code ... ou au pire ne pas le modifier ... qui peut le plus peut le moins
    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 !

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2006
    Messages
    245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations forums :
    Inscription : Avril 2006
    Messages : 245
    Par défaut
    Ben honnêtement cela ne marche pas non plus. C'est un programme qui doit normalement être destiné à plusieurs div dans une même page. Je pense qu'il ne doit pas être situé au bon endroit ...

    Je continue à chercher, si quelqu'un a une solution ...

  6. #6
    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 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    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 659
    Billets dans le blog
    1
    Par défaut
    ben replace li par div ... et lance la fonction dans le onload de la page ???
    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 !

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

Discussions similaires

  1. Propagation d'evenement dans une classe
    Par C_le_N dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 21/07/2010, 11h28
  2. [C#] Propagation d'evenement entre differents controls
    Par Omsalam dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/04/2010, 11h00
  3. Propagation d'un evenement comme une fuite
    Par le merou dans le forum Delphi
    Réponses: 1
    Dernier message: 19/06/2007, 18h01
  4. Bloquer la propagation d'un evenement
    Par roudoudouduo dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 03/04/2007, 18h52
  5. Stopper la propagation d'un evenement
    Par systemofaxav dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/06/2006, 14h41

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