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 08/08/2011, 12h23   #1
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 62
Points : 10
Points : 10
Par défaut Stopper un traitement JavaScript

Bonjour,

J'aimerai savoir si il est possible d'arrêter le processus de traitement de Javascript ?

Je m'explique : j'ai une ligne de tableau sur lequel j'ai un onclick afin d'afficher/cacher des "sous-lignes", jusque là pas de soucis ça marche très bien.
Maintenant lorsque j'affiche les sous-lignes d'une ligne, j'ai dans cette ligne un bouton de validation qui apparait...

Hors lorsque je clique sur ce bouton, il va faire le traitement souhaité, puis il va cacher les sous-lignes, ce que je ne veux pas !

Ma problématique en résumé : Est-il possible soit, de dire a JavaScript qu'après le traitement de mon bouton validation d'arrêter son processus...
Soit autrement, de dire que lorsque je clique sur la ligne je veux que mes sous-lignes s'affichent SAUF lorsque je clique sur le bouton de validation...

J'espère que j'ai étais assez clair... Merci d'avance pour vos retours
R'SKaP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 12h44   #2
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Il faut utiliser les méthodes / propriétés stopPropagation() / cancelBubble de l'événement lié à ton bouton pour empêcher l'événement de se propager.
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 13h25   #3
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
par curiosité, je veux bien voir le code de ta ligne et de ton bouton

merci
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h16   #4
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 62
Points : 10
Points : 10
Voici le code de ma ligne :
Code :
<tr id="ligne${objectif[1]}" class="ligne<%= style %>" style="height: 35px; background-color: pink;" onmouseover="this.style.cursor='pointer'" onclick="displayMagasins('${objectif[1]}')">
Et celui de mon bouton de validation :
Code :
<input type="button" name="btnValidObjectif" value="Validation" class="btnValidObjectif" onclick="javascript:validationObjectifs(false,'${objectif[1]}');">
Une idée ?
Sinon pour cancelBubble/stopPagination() je cherche mais je trouve et n'arrive a rien de probant... :s
R'SKaP est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h25   #5
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Code :
onclick="javascript:validationObjectifs(false,'${objectif[1]}');"


et si je mets
Code :
onclick="georges_clooney:makeCoffe('fast');"
ça marchera ?

Bref, tout ça pour dire que javascript: ne sert à rien dans un attribut d'événement qui attend du code JavaScript en paramètre...

Sinon
Code :
1
2
3
ElementHTML.onclick = function(e){
    e ? e.stopPropagation() : window.event.cancelBubble = true;
}
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h33   #6
Membre habitué
 
Homme
Étudiant
Inscription : mai 2011
Messages : 226
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : mai 2011
Messages : 226
Points : 126
Points : 126
j'ai pas testé (et un peu la flemme d'écrire un code de test), mais est-ce que renvoyer false dans le onclick du bouton ne permet pas de stopper la propagation?

Code :
1
2
3
4
5
6
<button ... onclick = "validationObjectifs(false,'${objectif[1]}');">
 
function validationObjectifs(....) {
    ...
    return false;
}
Sharcoux est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h36   #7
Responsable Développement Web

 
Avatar de Bovino
 
Homme Didier Mouronval
Développeur Web
Inscription : juin 2008
Messages : 13 807
Détails du profil
Informations personnelles :
Nom : Homme Didier Mouronval
Âge : 41
Localisation : France, Gironde (Aquitaine)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : juin 2008
Messages : 13 807
Points : 35 797
Points : 35 797
Non, ça permet juste d'empêcher l'action par défaut de l'élément, par exemple suivre le lien d'une balise a ou soumettre le formulaire d'un input submit (et correspondent à preventDefault() et returnValue de l'événement) mais l'événement se propage quand même aux éléments du DOM
__________________
Pas de question technique par MP !
Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
Vous possédez un blog et aimeriez diffuser vos billets sur le forum, contactez-moi !
Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
Mon livre sur jQuery
Bovino est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2011, 14h38   #8
Candidat au titre de Membre du Club
 
Inscription : novembre 2005
Messages : 62
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 62
Points : 10
Points : 10
Citation:
Envoyé par Bovino Voir le message
Code :
onclick="javascript:validationObjectifs(false,'${objectif[1]}');"


et si je mets
Code :
onclick="georges_clooney:makeCoffe('fast');"
ça marchera ?

Bref, tout ça pour dire que javascript: ne sert à rien dans un attribut d'événement qui attend du code JavaScript en paramètre...
Certainement l'habitude des appels aux fonctions js dans les href...

Sinon j'ai résolu mon problème, notamment à l'aide de ce topic : http://www.developpez.net/forums/d10...ation-firefox/

J'ai ajouté le paramètre event dans l'appel de ma fonction, et dans celle-ci, a la fin du traitement, j'appelle une méthode stopEvent(e)
Code :
1
2
3
4
5
6
7
8
9
10
11
12
function stopEvent(e) {
	if(e.stopPropagation){
		e.stopPropagation();
		e.preventDefault();
	}
 
	if(window.event){
		window.event.cancelBubble = true;
		window.event.returnValue  = false;
		return;
	}
}
Et ça marche très bien ! Merci pour votre aide.
R'SKaP 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 07h54.


 
 
 
 
Partenaires

Hébergement Web