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 21/11/2011, 15h29   #1
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 94
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 94
Points : 17
Points : 17
Par défaut Click sur checkbox

Bonjour à tous,

une fois n'est pas coutume avec Jquery, j'ai un ptit problème.

J'ai une zone comportant quelques checkbox (correspondant à des filtres pour l'affichage de mes données à droite, dans un flexigrid).
Sur ces checkbox, j'utilise l'event click ($('input').click(...)) pour faire un traitement et recharger mes données dans le flexigrid sans recharger toute la page. Dans ce traitement je désactive (disabled = true) toutes les checkbox.

Donc lorsque je clique sur une des checkbox, elles se désactivent toutes (elles sont "disabled") et devraient normalement ne pas être cliquables. Mais ! Lorsqu'elles sont désactivées, et que je clic dessus, une fois qu'elle repassent en "enabled" la dernière sur laquelle j'ai cliqué (et qui était grisée) se coche ou décoche (selon son état précédent) et le traitement lié est lancé (et encore, pas tout le temps : parfois elle se coche juste).

J'ai bien tenté un clearqueue sur chaque checkbox ou encore un unbind du click quand je les réactive, mais rien n'y fait.

En vous remerciant

Edit : bon je vais tenter de mettre un bout de code

Code :
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
35
36
 
//Désactive toutes les checkbox
function disableFilters(){
      $("#search .search_content input").each(function(){
		$(this).attr('disabled', true);
      });
}
//Pour chaque checkbox
$("#search_state .search_content input").each(function(){
        //Si on clique dessus
	$(this).click(function(){
		disableFilters();
		var type = "";
                //On reparcourt toutes les chkbox pour construire ma liste de filtres
		$("#search_state .search_content input").each(function(){
			if($(this).is(':checked')){
				$(this).next().addClass("selected");
				if(type != ""){
					type += ",";
				}
				type += this.value;
			}else{
				$(this).next().removeClass("selected");
			}
			//Show or hide the unselect option
			if(type == ""){
				hideSearchUnSelectAll($(this).parent().prev().prev());
			}else{
				showSearchUnSelectAll($(this).parent().prev().prev());
			}
		});
                //On recharge les 2 flexigrids
		$("#tabAll").flexOptions({filterState: type != "", filtersStateValues: type}).flexReload();
		$("#tabStared").flexOptions({filterState: type != "", filtersStateValues: type}).flexReload();
	});
});
titmael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 10h25   #2
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
Tu devrait joindre un peu de code, car bien que clairement expliqué ton problème ne peut être résolu sans consulter le code .
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/11/2011, 11h43   #3
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 94
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 94
Points : 17
Points : 17
Ajouté
titmael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 01h13   #4
Rédacteur
 
Avatar de danielhagnoul
 
Homme Daniel Hagnoul
Étudiant perpétuel
Inscription : février 2009
Messages : 3 221
Détails du profil
Informations personnelles :
Nom : Homme Daniel Hagnoul
Âge : 61
Localisation : Belgique

Informations professionnelles :
Activité : Étudiant perpétuel
Secteur : Enseignement

Informations forums :
Inscription : février 2009
Messages : 3 221
Points : 6 767
Points : 6 767
Bonsoir

Je crois comprendre que vous modifiez le DOM, alors il faut en tenir compte.

Code :
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
35
36
//Désactive toutes les checkbox
function disableFilters(){
    $("#search .search_content input").each(function(){
		$(this).prop('disabled', true);
    });
}
 
//Pour chaque checkbox avec jQuery 1.7 sinon voir delegate() dans l'API
$("#search_state").on("click", ".search_content input", function(){
		disableFilters();
 
		var type = "";
 
		//On reparcourt toutes les chkbox pour construire ma liste de filtres
		$("#search_state .search_content input").each(function(){
			if($(this).is(':checked')){
				$(this).next().addClass("selected");
				if(type != ""){
					type += ",";
				}
				type += this.value;
			}else{
				$(this).next().removeClass("selected");
			}
			//Show or hide the unselect option
			if(type == ""){
				hideSearchUnSelectAll($(this).parent().prev().prev());
			}else{
				showSearchUnSelectAll($(this).parent().prev().prev());
			}
		});
                //On recharge les 2 flexigrids
		$("#tabAll").flexOptions({filterState: type != "", filtersStateValues: type}).flexReload();
		$("#tabStared").flexOptions({filterState: type != "", filtersStateValues: type}).flexReload();
	});
});
__________________

FAQ jQuery

Mon cahier d’exercices sur jQuery & Co

Si un message vous a aidé ou vous semble pertinent, votez pour lui !
danielhagnoul est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/11/2011, 10h13   #5
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 94
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 94
Points : 17
Points : 17
Merci cela semble avoir résolu mon problème avec delegate (je suis avec JQuery 1.6)
titmael est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 09h42   #6
Futur Membre du Club
 
Inscription : octobre 2006
Messages : 94
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 94
Points : 17
Points : 17
En fait le problème n'est pas résolu

Donc si vous avez d'autres idées, je prends avec plaisir !
titmael est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h54.


 
 
 
 
Partenaires

Hébergement Web