heu tu as des balises en dehors du body ????
je pense que c'est un comportement spécifique au jsfiddle
dans ta page en situation cela doit passer avec body
Version imprimable
heu tu as des balises en dehors du body ????
je pense que c'est un comportement spécifique au jsfiddle
dans ta page en situation cela doit passer avec body
Non mais le truc est que si je met "body" quand tu affiche la première liste et que tu clique juste en dessous du bouton de la deuxième liste sa marche pas.
Il couvre pas toute la page, c'est pour sa que j'ai mis "htlm" à la place.
Je parle quand je test le code dans une vraie fenêtre pas sur le petit morceau de fenêtre de l'éditeur en ligne, car dans ce cas oui sa marche avec "body".
cela provient plutot du css
en utilisant un css normalisé :
http://jsfiddle.net/dAWZ2/21/
le body couvre bien tout l'espace comme il se doit
Ah oui ^^
Ben sa marche parfaitement maintenant :D
Merci ;)
Ou pas en fait x)
Je viens d'intégrer le code dans mon code Progress et il y a une seule fonction qui me bloque tout c'est elle :
Je sais pas pourquoi sa marche pas sachant que tout marche bien quand le code est à part :/Code:
1
2
3
4
5
6
7 $("body").on('click', function (e) { if($(e.target).parents('.containerCombo').length==0){ $(".containerElCombo").hide(); butval(); } });
Surement la condition qu'il n'aime pas, y a une autre façon de la faire ?
c'est bien dans le ready ?
tes balises body sont bien balancées ?
Il n'y a pas de raison particulière que ce code bloque quoi que ce soit !
la condition non plus.
Oui c'est bien dans le ready.
Balancées ? Tu entend quoi par la ? J'ai <body></body> qui sont bien placé si c'est de ça dont tu parle ^^
Et oui je sais qu'il ne devrait pas avoir de raison particulière que sa ne marche pas, mais bon on va dire que la plateforme web sur laquelle je travail n'est pas vraiment aux normes si je puis dire :? (Pas de HTML5 et que sous IE8 pour le moment...).
balises bien balancées => équilibrées ...
ouvertes et fermées correctement .
Après si ta plateforme est bancale, là on va pas pouvoir grand chose pour toi...
Pas de message d'erreur dans la console ?
Dans le code Progress les listes sont alimenté par une requête sauf une qui ne l'ai pas et c'est la seul qui fonctionne correctement :/
Non pas d'erreur.
attribues les evnements avec le on de façon déléguée ...Citation:
Dans le code Progress les listes sont alimenté par une requête
Heu...en langage "boulet" sa donne quoi ? x)Citation:
attribues les evnements avec le on de façon déléguée ...
devientCode:$(':button').on('click', function () {
ainsi tous les objets boutons créés dynamiquement se verront attribués l'evenement click lors de leur créationCode:$('body').on('click', ':button', function () {
J'ai bien remplacé la ligne de code sur le click des boutons afficher mais sa change rien le problème de vient pas de l'affichage des listes mais sur le focus que l'on a donné au body.
Je le sais car j'ai intégré le code petit à petit et en enlevant ce morceau tout marche correctement sauf le fait de cacher la liste quand tu clique ailleurs bien sur ^^
Code:
1
2
3
4
5
6 $("body").on('click', function (e) { if($(e.target).parents('.containerCombo').length==0){ $(".containerElCombo").hide(); butval(); } });
C'est bon j'ai trouvé :p
J'ai remplacé le "click" par "focus" et sa marche parfaitement avec mon code Progress, par contre sa marche pas en temps normal sauf sur IE bizarrement, alors mieux vaux laisser 'click' pour ceux qui veulent réutiliser l'exemple ;)
Code bidouille pour mon code Progress :
Code normal logique :Code:
1
2
3
4
5
6
7 $("body").on('focus', function (e) { if($(e.target).parents('.containerCombo').length==0){ $(".containerElCombo").hide(); butval(); } });
Code:
1
2
3
4
5
6
7 $("body").on('click', function (e) { if($(e.target).parents('.containerCombo').length==0){ $(".containerElCombo").hide(); butval(); } });
a tout hasard essaye ceci
Code:
1
2
3
4
5
6 $("body").on('click',"*",function () { if($(this).parents('.containerCombo').length==0){ $(".containerElCombo").hide(); butval(); } });
Nop, sa ne marche pas. Sa m'affiche et cache directement la liste.
oui j'ai juste oublié d'inhibier la propagation
http://jsfiddle.net/dAWZ2/23/
et http://jsfiddle.net/dAWZ2/24/
qui ajoute le click sur les labels ...
Je te remercie pour ton code mais sa fonctionne pas, enfin pas correctement.
J'ai remplacé le "html" par "body" car sinon sa marchait pas du tout mais du coup la le fait d'afficher la liste et la cacher en cliquant ailleurs sa marche.
Mais quand je coche une case, la liste se referme immédiatement :?
curieux ... car le stopPropagation empèche le click de se propager donc vu que le check box a pour parent un .containerCombo il ne doit rein declencher du tout ...Citation:
Mais quand je coche une case, la liste se referme immédiatement
il m'est avis que les elements ne sont pas insérés correctement dans ta page
peux tu nous coller ici le html généré ?
Oula tout le html sa sera pas possible car il y a au total 1872 lignes ^^
Mais je peux mettre la partie que concerne une liste pour que tu vois son fonctionnement.