Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript > Bibliothèques & Frameworks > jQuery
jQuery Forum d'entraide sur le framework jQuery. Avant de poster : Tutoriels jQuery, FAQ jQuery, Tous les tutoriels JavaScript, Toutes les FAQ 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 23/05/2011, 11h47   #1
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Par défaut Double condition pour l'événement click()

Bonjour,

quelle est la syntaxe si l'on veut dire :
Si je clique sur un "TD" ou une checkbox d'un même "TR", je fais telle ou telle action :

Voici le code qui fonctionne sans la double condition :
Code :
1
2
3
4
5
6
7
8
9
10
$('.tbl td').click(function(){
    var nextcheckbox = $(this).parent().find('input:checkbox');
    if(nextcheckbox.attr('checked')) {
        nextcheckbox.removeAttr('checked');
        $(this).parent().removeClass('couleurLigne');
    } else {
        nextcheckbox.attr('checked', 'checked');
        $(this).parent().addClass('couleurLigne');
    }
});
J'ai tenté ceci :
Code :
$('.tbl td ,input:checkbox').click(function(){ ...
mais ça ne fonctionne pas.
Merci pour votre aide.
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 12h41   #2
Membre habitué
 
Avatar de omar24
 
Homme Omar
Inscription : septembre 2010
Messages : 146
Détails du profil
Informations personnelles :
Nom : Homme Omar
Localisation : Maroc

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 146
Points : 125
Points : 125
essaye de tester:
Code :
$('.tbl > td ,input:checkbox').click(function(){ ...
je suis pas sur
omar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 13h09   #3
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Envoyé par omar24 Voir le message
essaye de tester:
Code :
$('.tbl > td ,input:checkbox').click(function(){ ...
je suis pas sur
non ça ne fonctionne pas, je ne peux plus cocher la case
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 13h16   #4
Membre habitué
 
Avatar de omar24
 
Homme Omar
Inscription : septembre 2010
Messages : 146
Détails du profil
Informations personnelles :
Nom : Homme Omar
Localisation : Maroc

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 146
Points : 125
Points : 125
tu utilises la méthode parent pour récupérer le parent de td et ensuite tu utilises parent() autre fois mais cette fois deux fois sur checkbox et tu compares les deux objets si ils sont égaux alors tu fais ton traitement sinon non.
Ceci bien sur partant du fait que checkbox se trouve dans un td.
omar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 14h34   #5
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
J'ai fais ça pour la checkbox :

Code :
1
2
3
4
5
6
7
$("input:checkbox").click(function(){
        if($(this).attr('checked', true)){
            $(this).parents("tr").addClass('couleurLigne');
        }else{
            $(this).parents("tr").removeClass('couleurLigne');
        }
});
mais ça ne décoche plus ?? Vous voyez mon erreur ?
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 15h40   #6
Membre habitué
 
Avatar de omar24
 
Homme Omar
Inscription : septembre 2010
Messages : 146
Détails du profil
Informations personnelles :
Nom : Homme Omar
Localisation : Maroc

Informations professionnelles :
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2010
Messages : 146
Points : 125
Points : 125
es tu sur que
Code :
$(this).attr('checked', true)
retourne un boolean?sinon essaye
Code :
if($(this).attr('checked'))
omar24 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 16h23   #7
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
J’essaie de comprendre ton besoin.

Tu as une TR contenant plusieurs CheckBox et lorsque tu en choisie un tu désactives les autres c'est bien ça ?

Si c'est le cas je regarderais du coté .toggle() et je ferais deux fonctions une qui désactive et l'autre qui active les checkboxes
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/05/2011, 18h12   #8
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Tu as une TR contenant plusieurs CheckBox et lorsque tu en choisie un...
...je colore la TR avec une classe css puis lorsque que je décoche j'enlève cette classe.
Je voudrais pouvoir aussi ajouter une classe css à la TR si je clique sur l'une de ces TD.
arthuro45 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 13h46   #9
Membre éclairé
 
Avatar de llaffont
 
Loïc Laffont
Inscription : juin 2007
Messages : 495
Détails du profil
Informations personnelles :
Nom : Loïc Laffont
Âge : 34
Localisation : France, Loire (Rhône Alpes)

Informations forums :
Inscription : juin 2007
Messages : 495
Points : 380
Points : 380
ça ne va pas être facile de différencier le clique dans un checkbox contenu dans un TD,
d'un clique dans un TD.

sinon pour ton petit bout de code au dessus

Code :
1
2
3
4
5
6
7
$("input:checkbox").click(function(){
        if($(this).is(':checked')){
            $(this).parents("tr").addClass('couleurLigne');
        }else{
            $(this).parents("tr").removeClass('couleurLigne');
        }
});
__________________
En théorie tout devrait fonctionner...

La France a un incroyable talent : Son retard en technologie informatique
llaffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 14h04   #10
Membre confirmé
 
Avatar de arthuro45
 
Arthur Salomon
Développeur du dimanche
Inscription : juillet 2009
Messages : 592
Détails du profil
Informations personnelles :
Nom : Arthur Salomon
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Développeur du dimanche

Informations forums :
Inscription : juillet 2009
Messages : 592
Points : 213
Points : 213
Citation:
Envoyé par llaffont Voir le message
ça ne va pas être facile de différencier le clique dans un checkbox contenu dans un TD,
d'un clique dans un TD.

sinon pour ton petit bout de code au dessus

Code :
1
2
3
4
5
6
7
$("input:checkbox").click(function(){
        if($(this).is(':checked')){
            $(this).parents("tr").addClass('couleurLigne');
        }else{
            $(this).parents("tr").removeClass('couleurLigne');
        }
});
Merci ça marche impec !
arthuro45 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 15h06.


 
 
 
 
Partenaires

Hébergement Web