Vous n'êtes pas identifié(e).
Saluton,
Et non, rien de sexuel ou d'homophobe ou d'incestueux là-dedans.
En fait je suis un lien HTML qui encapsule une petite image (un drapeau de 20x13 pixels).
Ma maman est une cellule <td> d'une ligne <tr> d'un tableau et elle a trois sœurs adjacentes qui sont revêtues, par une instruction de CSS, d'une cape d'invisibilité façon Harry Potter.
J'ai deux méthodes onmouseover et onmouseout dont je souhaite qu'elle rende mes tantes visibles (fonction javascript voisine()) pour la première et leur remette leur cape d'invisibilité pour la seconde (fonction javascript devoisine()) .
Le code HTML est on ne peut plus simple :
vous l'avez compris, ce qui me manque c'est l'équivalent de la fonction maman().
Une idée ? Une piste ?
Ne laissez pas un pauvre retraité dans la panade, de grâce !
Amike, MK.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bon, je me suis dit que je pouvais jouer sur le fait que la mère <td> des anres <a> était toujours de class="flg"
alors j'ai revu mon code comme suit :
Bien sûr j'ai enlever toutes les interceptions des onmouseover et onmouseout.
Mais là, Firebug me dit :
TypeError: this.parents is not a function
[Stopper sur une erreur]$(((this).parents('td'))+'+ td').css('display','none');
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Après une grande déception de voir, une fois de plus, le XV de France ne pas réussir à s'imposer à Rome face à une équipe italienne, certes encore en progrès, mais pas non plus très enthousiasmante, je reviens vers mon problème de lignée de parrainage.
Cette fois j'obtiens l'affichage puis le masquage, par le passage de la souris, de toutes mes tantes mais aussi de celles de mes copains des autres <tr>:
Il faut que je trouve le moyen de faire appliquer le sélecteur $('td + td') que sur $('.flg > a').hover les tantes du lien survolé.
Enfin, c'est comme ça que je comprends les choses.
Je trouve que cette notion de définition de sélecteur hiérarchique pointant vers les ascendants dans JQuery n'est vraiment pas bien explicitée ni commentée.
C'est là, je pense, qu'on atteint aux limites de ces langages aux antipodes des langages naturels, un peu comme avec les regexp., on se fait plaisir quand on s'en sort, parce qu'avec un code vraiment ramassé on parvient à contrôler des choses complexes, mais le temps qu'on perd pour arriver au résultat est complètement contre-productif.
Et je préfère ne pas penser à la maintenance par un tiers de ce type de scripts.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
J'ai le sentiment d'avoir présumé soit des possibilités de jQuery à gérer l'arborescence ascendante, soit (plutôt) de mes facultés intellectuelles pour bien intégrer le fonctionnement de cet infâme bouzin.
Il faut dire que la doc, les tutos, les exemples traitant JQuery, notamment sous cet angle, ne sont pas légion ou alors au mieux évasifs ou, carrément, abscons.
Donc je crois que je vais jeter l'éponge et essayer de trouver une solution javascript basique.
J'aurais juste perdu une journée de plus, voilà qui ne va pas me motiver pour pérenniser l'utilisation de JQuery à l'avenir.
Et Dame 4in qui m'énerve avec son nouveau joujou de Noël (non pas un sex-toy, bande d'obsédés, son iPad kivabien).
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Je me lance, sans certitude d'avoir compris à 100% ce que tu voulais faire. Personnellement je ne suis pas fan du javascript intrusif sans la page donc j'ai externalisé. De plus mettre un lien avec une ancre juste pour mettre un lien, c'est moyen ! :-) D'ailleurs tu avais fermé le lien directement ce qui peut poser des problèmes :
eu lieu de
J'ai viré tout ça.
Je suppose que tu as une class .flg dans ta feuille de style qui contient ça par exemple :
table tr td.flg {
visibility: visible;
}
Le code javascript pour afficher les libéllés correspondant à la langue est tout simplement (si j'ose dire) :
Si ce n'est pas ça grand chef, dis moi.
Hors ligne
Je me lance, sans certitude d'avoir compris à 100% ce que tu voulais faire. Personnellement je ne suis pas fan du javascript intrusif sans la page donc j'ai externalisé. De plus mettre un lien avec une ancre juste pour mettre un lien, c'est moyen ! :-) D'ailleurs tu avais fermé le lien directement ce qui peut poser des problèmes :
<a href="#" onmouseover="voisine(this);" onmouseout="devoisine(this);"/>
... Ôte-moi d'un vague doute, normalement les évènements onmouseover() onmouseout() sont censés n'être réactifs que sur des ancres ou des areas de usemap ou les choses ont-elle à ce point changé ?
D'autant que mes acres ne sont pas vides, elles encapsulent, chacune, une image.
... au lieu de
<a href="#" onmouseover="voisine(this);" onmouseout="devoisine(this);">
J'ai viré tout ça.
Je suppose que tu as une class .flg dans ta feuille de style qui contient ça par exemple :
table tr td {
visibility: hidden;
}table tr td.flg {
visibility: visible;
}...
et tu supposes mal. la css ne comporte, pour l'instant, aucune règle afférente à cette class='flg', les drapeaux et l'icône représentant l'item restent toujours visibles, ce sont les trois colonnes contenant le nominatif masculin singulier, le nominatif pluriel et l'éventuel nominatif féminin singulier qui ne doivent s'afficher qu'au survol du drapeau de la langue et pour l'item considérer et lui seul.
...
Le code javascript pour afficher les libéllés correspondant à la langue est tout simplement (si j'ose dire) :
$(function() {
$('.flg').hover(
function() {
$(this).parent().find('td:not(.flg)').css('visibility', 'visible');
},
function() {
$(this).parent().find('td:not(.flg)').css('visibility', 'hidden');
}
);
});Si ce n'est pas ça grand chef, dis moi.
Restons simple, appelle-moi MAITRE, petit padawan, comme tout le monde.
Je n'ai pas le temps de tester dans l'immédiat mais ta proposition semble intéressante, a priori.
D'autant, qu'à terme, quand on cliquera sur le drapeau il faudra que je trouve le moyen de shunter l'action du onmouseout pour cette ligne (les colonnes resteront affichées jusqu'à ce qu'on clique sur un autre drapeau, même d'un autre item).
De toutes façons, merci pour ta sympathique contribution.
Amike MK.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
nicolas a écrit :Je me lance, sans certitude d'avoir compris à 100% ce que tu voulais faire. Personnellement je ne suis pas fan du javascript intrusif sans la page donc j'ai externalisé. De plus mettre un lien avec une ancre juste pour mettre un lien, c'est moyen ! :-) D'ailleurs tu avais fermé le lien directement ce qui peut poser des problèmes :
<a href="#" onmouseover="voisine(this);" onmouseout="devoisine(this);"/>... Ôte-moi d'un vague doute, normalement les évènements onmouseover() onmouseout() sont censés n'être réactifs que sur des ancres ou des areas de usemap ou les choses ont-elle à ce point changé ?
Je ne voudrais pas te brusquer dans ta retraite bien méritée mais même en Bretagne et depuis des lustres les événements liés à la souris (over, out, click, double click,...) sont actifs quels que soit l'élément survolé et bien évidemment quel que soit le navigateur.
Je pense que tu confonds avec la gestion de cette propriété visuelle côté utilisateur en css qui n'est possible que sur les liens (et assimilés) pour que cela fonctionne quel que soit le navigateur.
Restons simple, appelle-moi MAITRE, petit padawan, comme tout le monde.
Je n'ai pas le temps de tester dans l'immédiat mais ta proposition semble intéressante, a priori.
D'autant, qu'à terme, quand on cliquera sur le drapeau il faudra que je trouve le moyen de shunter l'action du onmouseout pour cette ligne (les colonnes resteront affichées jusqu'à ce qu'on clique sur un autre drapeau, même d'un autre item).
De toutes façons, merci pour ta sympathique contribution.
Amike MK.
Le fait d'externaliser le javascript te permettra de changer l'événement ou d'en ajouter ou de le rendre paramétrable.
Tu peux mettre ce que tu veux à la place de click, même plusieurs événements : exemple flag_event = "click hover"
Tu peux après récupérer le type de l'événement dans la fonction de callback.
Hors ligne
Bon, ton script pour le hover, que je viens de tester, remplit tout à fait le cahier des charges. Seule la ligne du drapeau de l'item survolé s'affiche (au passage, j'utilise display (none||table-cell) et non visibility, car visibility affiche le background, ce qui n'est pas souhaité, mais ce n'est qu'un détail);
Je t'en remercie donc amplement et à nouveau.
Pour le reste, tu as probablement raison, il y a tellement longtemps que je ne pratique plus qu'en dilettante que ma mémoire est probablement prise en défaut.
Toutefois, puisque tu sembles l'ignorer, je te précise que nous autres, retraités, avons des emplois du temps délirants. Aussi ne pourrai-je me pencher sur ta proposition que dans la soirée, car cette après-midi, passage à la déchetterie de Plonévez-Porzay pour vider la remorque (je suis en train de ranger le sous-sol sous l'impulsion tenace et assidue de Dame 4in), puis retour ici pour se changer et se rendre à Cinéville à Quimper pour une séance de connaissance du monde consacrée au pays cathare.
Comme une sorte de retour au source, pour moi, qui suis un lecteur assidu d'Henri Gougaud, notamment de Bélibaste.
Bélibaste, un nom qui, si on le décompose peut signifier "La guerre ça suffit", donc une profession de foi pacifiste. Quand on sait le sort qui fut réservé aux parfaits cathares ...
Et demain il me faudra consacrer un peu de temps à mes abeilles puisqu'elles ont décidé de commencer leur saison printanière depuis une bonne semaine maintenant. J'ai beau leur dire de se méfier d'un toujours possible coup de froid d'ici la fin mars elles n'en n'ont rien à cirer. Ce qui, pour des abeilles, est assez paradoxal.
@+ et encore merci à toi.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Bon, ton script pour le hover, que je viens de tester, remplit tout à fait le cahier des charges. Seule la ligne du drapeau de l'item survolé s'affiche (au passage, j'utilise display (none||table-cell) et non visibility, car visibility affiche le background, ce qui n'est pas souhaité, mais ce n'est qu'un détail);
Je t'en remercie donc amplement et à nouveau.
Pour le reste, tu as probablement raison, il y a tellement longtemps que je ne pratique plus qu'en dilettante que ma mémoire est probablement prise en défaut.
Crois-tu vraiment que ce soit la manque de pratique pour le problème de mémoire ? :-) Ne dis-tu pas cela pour te rassurer ? Mouarff. Je pars en courant de peur de me prendre un coup de canne.
Toutefois, puisque tu sembles l'ignorer, je te précise que nous autres, retraités, avons des emplois du temps délirants.
Je te confirmerai cela dans 30 ou 40 ans... peut-être plus si la situation ne s'améliore pas.
Aussi ne pourrai-je me pencher sur ta proposition que dans la soirée, car cette après-midi, passage à la déchetterie de Plonévez-Porzay pour vider la remorque (je suis en train de ranger le sous-sol sous l'impulsion tenace et assidue de Dame 4in), puis retour ici pour se changer et se rendre à Cinéville à Quimper pour une séance de connaissance du monde consacrée au pays cathare.
Comme une sorte de retour au source, pour moi, qui suis un lecteur assidu d'Henri Gougaud, notamment de Bélibaste.
Bélibaste, un nom qui, si on le décompose peut signifier "La guerre ça suffit", donc une profession de foi pacifiste. Quand on sait le sort qui fut réservé aux parfaits cathares ...
Et demain il me faudra consacrer un peu de temps à mes abeilles puisqu'elles ont décidé de commencer leur saison printanière depuis une bonne semaine maintenant. J'ai beau leur dire de se méfier d'un toujours possible coup de froid d'ici la fin mars elles n'en n'ont rien à cirer. Ce qui, pour des abeilles, est assez paradoxal.
Je connais un peu le coin où tu habites. J'ai passé 5 été de suite à Pont l'abbé en plein pays bigouden; une année à Crozon (enfin juste à côté) et l'été prochain pour la deuxième année consécutive nous allons à Plougerneau.
Et pour ta passion (enfin l'une de tes passions en dehors de Dame 4in), combien as-tu de ruches ? A la sortie du Lycée j'ai songé un moment à être apiculteur. Je ne me rappelle plus précisément ce qui m'a fait renoncé.
@+ et encore merci à toi.
Je t'en prie. N'hésite pas si tu as d'autres questions.
Hors ligne
Le documentaire sur le pays cathare était vraiment d'un niveau très moyen.
Le code javascript pour afficher les libellés correspondant à la langue est tout simplement (si j'ose dire) :
tu es tout à fait fondé à mettre en exergue la simplicité du code proposé qui ne souffre pas la moindre ambigüité.
C'est clair et ça se comprend à première lecture.
Dont acte.
Par contre le deuxième script que tu me suggères, pour intercepter l'évènement click, me laisse perplexe. Je tourne le problème dans ma tête (même pendant la séance de connaissance du monde) et si je vois bien comment réitérer ce que fait hover, je ne vois pas comment y shunter le mouseout pour la ligne clickée.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
L'idée du deuxième script c'est de faire quelque chose comme ça (en remettant les liens autour des images de drapeaux :
En revanche côté expérience utilisateur ce n'est pas forcément optimal car ce n'est pas toujours très clair d'avoir deux types actions (over/out et clic) pour un même élément de la page. A toi de voir.
En relisant je crois que je comprends un peu mieux ce que tu souhaites faire. Dans ce cas, il faudrait ne rien faire sur l'événement mouseleave si j'ai bien compris. Il suffirait de ne laisser que click et mouseenter comme événement et virer hover (qui regroupe mouseenter et mouseout)
Hors ligne
Que cela soit bien clair, perso, je souhaite surtout ne rien faire, ou plutôt autre chose, m'entraîner à la bombarde, avancer dans l'écriture d'un des nombreux bouquins que j'ai en chantier, massacrer quelques chansons en m'accompagnant à la guitare.
Au lieu de cela je dois ranger le sous-sol et respecter le cahier des charges suivant :
1. quand la souris survole un drapeau les colonnes masquées de la ligne doivent apparaître.
2. quand on clique sur un drapeau les colonnes masquées doivent apparaître et rester apparentes même quand la souris quitte ce drapeau une fois le point 2 réalisé les autres lignes de la page doivent conserver le même comportement qu'en 1
3. dès que l'on clique sur un autre drapeau qu'en 2, le comportement observé en 2 se reporte sur la nouvelle ligne, la ligne en 2 redevient une ligne normale.
4. si l'on reclick sur un bouton déjà affiché de manière permanente, il redevient furtif (hover/out)
Et crois-moi, ma cliente (Dame 4in) n'en démordra pas.
C'est assez simple à expliquer, par contre, à réaliser ce n'est pas si évident que cela.
J'ai cependant dans l'idée d'utiliser comme drapeau un attribut genre alt ou lang qui prendrait une valeur convenue, genre 'fix' ou bien, encore mieux, d'ajouter une class provisoire à la ligne clickée et d'exclure cette classe du traitement du survol.
Je verrai cela demain, si les petits cochons ne m'ont pas mangé d'ici-là.
Merci encore à toi, Nicolas (même si, depuis qu'un certain tout petit nicolas m'a obligé à faire 4 mois au-delà de mes 60 ans, je hais, a priori, tout Nicolas potentiel).
PS : Je sais bien qu'en français académique le verbe est CLIQUER et non CLICKER, mais j'avais envie de transgresser.
On a parfois de ces lubies nous les vieux excentriques (Non Pierrot, pas 'sans trique', enfin pas tout le temps.)
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Affres de l'âge, les insomnies.
J'en profite pour surfer et atterrir chez http://jquery.developpeur-web2.com/documentation.php.
Qui pourra m'expliquer pourquoi je ne suis jamais tomber sur ce lien auparavant (chinois, bien sûr, what else ?) ?
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Je pense qu'en jouant avec la propriété is(':visible') de jquery tu devrais t'en sortir.
Je ne crois pas car, je n'utilise pas "visibility(hidden/visible)" mais "display(none, table-cell)" et je ne vois pas qu'il existe de sélecteur ":displayed".
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
En jouant avec deux classes css, je pense que tu arrives au comportement voulu.
table tr td.flg {
visibility: visible;
}
table tr.active td, table tr.clicked td {
visibility: visible;
}
Et en javascript cela peut donner ça :
Hors ligne
Visibility continue de me poser le problème de la persistance des background avant le premier mouseleave, mais on verra ça plus tard.
Pour l'instant ton script fournit bien l'effet furtif (mouse[enter/leave]) mais se contrefout de l'aspect clicked.
Je te mets ici l'intégralité des fichiers puisque tout cela est, pour l'instant, réduit à la portion congrue dans cette phase de test.
la feuille de style
table tr td { visibility: hidden;}
table tr td.flg {visibility: visible;}
table tr.active td, table tr.clicked td { visibility: visible;}
le javascript
$(function() {
$('.flg').bind("hover click", function(e) {
var parent = $(this).parent();
if (e.type=='click') {
if (parent.hasClass('clicked')) {
parent.removeClass('clicked');
} else {
parent.parent().find('tr.clicked').removeClass('clicked');
parent.addClass('clicked');
}
} else if (e.type=='mouseenter') {
parent.addClass('active');
} else if (e.type=='mouseleave') {
parent.removeClass('active');
}
});
});
et la petite page HTML
Je vais continuer à tester des trucs sur la piste que tu as ouverte mais peut-être cela t'aidera-t-il à mieux cerner le problème.
Encore merci.
Ĝis, amike, MK.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Il faut enlever la première partie du javascript et ne garder que ce que je t'avais mis.
Chez moi ça marche comme dirait l'autre : http://www.nikrou.net/veau/
Hors ligne
Évidemment ! (maintenant que tu le dis).
J'ai remis les display(none|table-cell) plutôt que les visibility(visible|display) pour squeezer les background intempestifs.
Je ne trouvais pas la faille dans ton code, et pour cause, c'était mon vieux code qui, en outre d'interférer gardait l'approche par display alors que ton code attaque sur la visibility.
Bon, bah Dame 4in va pouvoir continuer à charger la mule.
Un immense MERCI, si tu passes par Plomo cet été, n'oublies pas de venir goûter mon miel (enfin celui que me font mes abeilles).
Amike, MK.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Ça n'a pas traîné.
Nouvelle ligne au cahier des charges, quand on `click`sur l'image (le veau pour l'instant) cela doit rendre toutes les lignes de l'item visibles en permanence. Jusqu'à ce que l'on `click` à nouveau sur le veau ou sur un drapeau, ou sur une autre image.
Et là, tel qu'est conçu le tableau HTML, je vois mal comment reconnaître les tantes <tr> de l'item du <tr> contenant le <th> mère de l'image `clicked`, et seulement elles.
Peut-être en mettant une deuxième class à chaque <tr> class identique pour toutes les <tr> d'un même item.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Je n'avais pas vu mais ton tableau n'a pas la bonne structure ce qui n'aide pas à mettre en place la fonctionnalité souhaitée. Ajoute une partie thead et tbody et mets la ligne d'entête dans la partie thead.
Le plus simple serait de faire deux tableaux mais ce n'est pas forcément insurmontable sans.
Essaie de peaufiner le html pour que le tableau est une forme correcte. Après écrire le javascript pour mettre en place le clic sur le veau sera un jeu d'enfant !
Un immense MERCI, si tu passes par Plomo cet été, n'oublies pas de venir goûter mon miel (enfin celui que me font mes abeilles).
Je note. Je vais en Bretagne les 3 dernières semaines de juillet à Plougerneau.
Hors ligne
Il n'y a pas de <thead> à ce tableau (pour l'instant, avec Dame 4in il ne faut jurer de rien.), mais il est vrai que je peux quand même tout mettre dans un tbody.
J'ai ajouté une deuxième classe incrémentale aux <tr> 01, 02, etc. à venir. Tous les <tr> d'un même item auront donc deux classes soit fr, sp, eo, uk, dl et la class incrémentale de l'item.
Bon, si je n'encapsule pas la balise img du veau dans une ancre (la balise pas le veau, quoique ...), il n'y a pas d'évènement click().
Le premier item devient donc:
et avec ça, je récupère la class:
j'obtiens bien '01' ou '02' suivant l'image sur laquelle je clique, et qu'il y a 5 frères.
Je vais essayer d'aller plus loin, mais là, c'est l'heure de la soupe.
Je note. Je vais en Bretagne les 3 dernières semaines de juillet à Plouguerneau.
Généralement, nous, l'été, on ne bouge pas.
Dame 4in me souffle :
Plouguerneau : D'or à la fasce de gueules, à la bande de sinople chargée de trois besants d'argent, brochant sur le tout, au chef d'hermine.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Oooops ! Je crois qu'il me faut déchanter, sans le $ devant, var nbFreresPepe = ('tr.' + classItem).length; fournit 5 parce que c'est la longueur de la chaîne 'tr.01', coïncidence fâcheuse. Quand je mets le $ devant la valeur devient 0.
Dommage ...
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne
Je viens de comprendre ce qui me gênait dans ton code. Dans la première ligne tu mets th rowspan="5" et ensuite 4 td. Ce n'est pas logique, ni valide.
Voici le html que je te propose (et qui te donnera le même rendu):
La feuille de style associée en ajoutant le curseur plus joli au survol des drapeaux :
table tr td { visibility: hidden;}
table tr td.flg {visibility: visible;cursor:pointer;}
table tr.active td, table tr.clicked td, table tr.th-clicked td { visibility: visible;}
J'ai ajouté la fonctionnalité du clic sur le veau et voici le javascript :
$('th').click(function(e) {
var nb_tr = parseInt($(this).attr('rowspan'), 10) - 1;
var current = $(this).parent();
var th_clicked = false;
if ($(this).parent().next().hasClass('th-clicked')) {
th_clicked = true;
}
for (var i=0;i<nb_tr;i++) {
current = current.next();
if (th_clicked) {
current.removeClass('th-clicked');
} else {
current.addClass('th-clicked');
}
}
});
});
Le javascript est certainement perfectible mais l'idée est là.
Hors ligne
A mon tour de ne pas comprendre et d'être médusé.
J'ai 5 <tr> par item (un pour chacune des langues) seul le premier <tr> comporte 5 colonnes (1 <th> et 4<td>)
les quatre autres n'ont que 4 <td> puisque le <th rowspan="5"> du premier <tr> occupe la première colonne des 4 autres lignes.
Pour moi, ça c'est logique et cohérent.
Qu'y-a-t-il de non confirme là-dedans ? J'ai toujours pratiqué et vu pratiquer de la sorte.
La logique de ton rowspan="6", par contre, me surprend, une ligne pour l'image et 5 lignes pour les 5 langues.
Mais, et à ma grande stupéfaction, ta solution donne exactement le même rendu ce qui reste pour moi un mystère.
Et là, j'avoue, je n'y comprends plus rien.
Par ailleurs, reste le problème que visibility:hidden ne cache que le contenu et n'enlève pas le background, contrairement à display:none qui, lui a le défaut de ne pas garder la stabilité du tableau en largeur et hauteur des colonnes.
Sinon, le cahier des charges stipule qu'un click sur un drapeau ou une image d'un autre item doit masquer les lignes déjà figées
Mais j'attends de savoir ce qu'en dira Dame 4'in. Après tout, quand on clique à nouveau sur l'image, les lignes se masquent.
Peut-être qu'elle voudra garder l'idée de pouvoir démasquer plusieurs items.
Bon, tu n'auras vraiment pas voler ton pot de miel, que d'émotions et de découvertes !
*- on peut cliquer sur tout
*- un comportement inconnu du rowspan
*- et je ne parle même pas de JQuery.
Je crois que tu auras même droit à ma spécialité, le pain d'épices aux fruits secs.
Pour répondre (enfin) à ta question nous avons actuellement 3 colonies d'abeilles et nous ne comptons pas aller au-delà de 6. Quatre chez nous et deux (au printemps et en été) chez fille aînée à Penmarc'h.
Je dis bien actuellement car l'époque n'est pas très réjouissante pour les abeilles entre le varroa, les pesticides les saloperies genre Cruiser et autres néonicotinoïdes, et la vespa velutina (frelon asiatique) qui s'annonce déjà vers Châteaulin, la santé des abeilles est précaire.
Je me suis déclaré comme récupérateur d'essaims, ce qui nous permet, bon an mal an, de maintenir notre cheptel. Mais ce n'est pas une sinécure. Il faut vraiment avoir la passion.
Ainsi, ce matin, j'étais chez mon allergologue car les trois dernières fois que je me suis fait piqué, j'ai fait un choc anaphylactique (tension, rougeurs, tachycardie et éruption d'urticaire sur tout le corps en à peine 5 minutes). Je souhaite me faire désensibiliser mais il semble, en première analyse, qu'il y ait une interférence entre le médicament que je prends contre l'hypertension et le venin des abeilles.
Il faut donc avoir le cœur bien accroché pour s'occuper d'abeilles.
Bon il faut que j'aille ranger un peu le sous-sol. Petit à petit l'abeille fait ses rayons.
Ĝis, dankon, amike, MK.
Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy
Hors ligne