Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 11/05/2011, 16h50   #1
Invité de passage
 
Inscription : juin 2009
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : juin 2009
Messages : 12
Points : 1
Points : 1
Par défaut stopPropagation() et firefox

Bonjour,

J'ai deux div imbriquée avec chacune un évènement onClick différent le problème c'est que lorsque l’on clique sur la div la plus au dessus les deux fonction de chaque div sont exécutées j'ai donc trouvé la solution stopPropagation() te cancelBubble qui fontionne très bien pour tout les autres navigateurs mais impossible de le faire fonctionner sur firefox!!

Mon code :

Code :
1
2
3
4
5
6
7
8
 
function modifier_produit(){
        alert('modifier');
if (event.stopPropagation){ 
        event.stopPropagation(); 
                          } 
event.cancelBubble = true;
                           }


Merci de votre aide
nclsbiz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 18h47   #2
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
Bonjour,
- FireFox n'implémente pas d'objet event, particularité de IExplorer, il te faut passer event en paramètre à la fonction au minimum.
Code :
1
2
3
4
5
6
7
8
9
10
11
function CancelEvent(e){
  if( e){
    e.stopPropagation();
    e.preventDefault();
  }
  if( window.event){
    window.event.cancelBubble = true;
    window.event.returnValue  = false;
    return;
  }
}
- stopPropagation est W3C et cancelBubble IE.
Une page très instructive Présentation des évènements du DOM
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 19h23   #3
Invité de passage
 
Inscription : juin 2009
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : juin 2009
Messages : 12
Points : 1
Points : 1
Merci mais je n'arrive pas a le faire fonctionner, j'ai fait comme ceci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
function modifier_produit(e){
        alert('modifier');
  if( e){
    e.stopPropagation();
    e.preventDefault();
  }
  if( window.event){
    window.event.cancelBubble = true;
    window.event.returnValue  = false;
    return;
  }
}
et mon code qui appel la fonction est :

Code :
1
2
 
echo'<div class="modifier"><img src="logo/modify.png" onMouseOver="change_modifier(this.id)" onMouseOut="remet_modifier(this.id)" onClick="modifier_produit()" id="modif'.$resultat->id.'" class="bouton_modif"></div>';

Mais la fonction de la div du dessous est toujours appelée!
nclsbiz est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h28   #4
Membre chevronné
 
Homme Krusty
Inscription : mai 2009
Messages : 472
Détails du profil
Informations personnelles :
Nom : Homme Krusty
Localisation : France

Informations forums :
Inscription : mai 2009
Messages : 472
Points : 617
Points : 617
Code :
onClick="modifier_produit(event)"
__________________
programmer n'est pas connaitre tous les moindres détails d'un langage mais savoir exploiter sous toutes ses facettes ce que l'on connait.
mekal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 20h42   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 933
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 933
Points : 4 756
Points : 4 756
en complément de ce qu'a écrit mekal tu ne peux pas faire l'appel en direct dans la balise et utiliser le e en direct.
Il te faut dans ce cas tester l'existence de la méthode.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function modifier_produit(e){
  var sMsg = e.stopPropagation ? "W3C" : "IExplorer";
  alert( sMsg);
 
  // stop la propagation
  if( e.stopPropagation){
    e.stopPropagation();
    e.preventDefault();
  }
  if( window.event){
    window.event.cancelBubble = true;
    window.event.returnValue  = false;
    return;
  }
}
testes avec
Code html :
1
2
3
4
5
6
7
8
<div class = "modifier" onclick = "alert( this.tagName);">
  <img src = "logo/modify.png"
    id = "modif"
    class = "bouton_modif"
    onmouseover = "change_modifier(this.id)"
    onmouseout = "remet_modifier(this.id)"
    onclick = "modifier_produit(event);">
</div>
par exemple
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/05/2011, 21h14   #6
Expert Confirmé Sénior
 
Avatar de Auteur
 
Inscription : avril 2004
Messages : 4 793
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : avril 2004
Messages : 4 793
Points : 5 117
Points : 5 117
Je déterre de vieilles discussions
http://www.developpez.net/forums/d68...oppropagation/

http://www.developpez.net/forums/d57...circuiter-1-a/
Auteur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/05/2011, 10h30   #7
Invité de passage
 
Inscription : juin 2009
Messages : 12
Détails du profil
Informations personnelles :
Localisation : France, Marne (Champagne Ardenne)

Informations forums :
Inscription : juin 2009
Messages : 12
Points : 1
Points : 1
Ca fonctionne enfin !

Un grand merci a vous
nclsbiz est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h59.


 
 
 
 
Partenaires

Hébergement Web