Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment "reseter" un menu/liste

14 réponses
Avatar
Tantale
Encore moi ...

Toujours pour ma page http://www.jmrw.com/Chess/Ugo_Dossi/base.htm

lorsque je bascule entre les menus/listes, je voudrais que les deux menus
soient repositionnés sur le premier élément. Comment faire ?

Merci.

jmrw

10 réponses

1 2
Avatar
SAM
Le 1/18/09 10:33 PM, Tantale a écrit :
Encore moi ...

Toujours pour ma page http://www.jmrw.com/Chess/Ugo_Dossi/base.htm

lorsque je bascule entre les menus/listes, je voudrais que les deux menus
soient repositionnés sur le premier élément. Comment faire ?



1) Ben ? comment j'active le 2ième ? Pas vu de "bascule".

2) C'est une très mauvaise idée !
le menu *doit* rester sur celui choisi :
- pour qu'on sache où on est
- pour pouvoir réactiver le premier item si l'on veut.
(sinon ... comment revient-on à Fischer ?)

Le menu qu'on veut voir s'afficher s'obtient par son index

Le 1er item :

monSelect.selectedIndex = 0;

Le dernier item :

monSelect.selectedIndex = monSelect.length-1;

en remplaçant "monSelect" par ce qu'il faut.

--
sm
Avatar
Tantale
"SAM" a écrit dans le message
de news: 4973d1b6$0$4076$
Le 1/18/09 10:33 PM, Tantale a écrit :
Encore moi ...

Toujours pour ma page http://www.jmrw.com/Chess/Ugo_Dossi/base.htm

lorsque je bascule entre les menus/listes, je voudrais que les deux menus
soient repositionnés sur le premier élément. Comment faire ?



1) Ben ? comment j'active le 2ième ? Pas vu de "bascule".

2) C'est une très mauvaise idée !
le menu *doit* rester sur celui choisi :
- pour qu'on sache où on est
- pour pouvoir réactiver le premier item si l'on veut.
(sinon ... comment revient-on à Fischer ?)

Le menu qu'on veut voir s'afficher s'obtient par son index

Le 1er item :

monSelect.selectedIndex = 0;

Le dernier item :

monSelect.selectedIndex = monSelect.length-1;

en remplaçant "monSelect" par ce qu'il faut.

--
sm



Je n'y connais rien en javascript et je n'ai pas le temps de m'y consacrer,
donc je bidouille.

J'ai crée deux fonctions Permute pour baculer d'un menu à l'autre :

function Permute1(){
document.getElementById("select").disabledúlse;
document.getElementById("select2").disabled=true;
Permute=1;
LoadNextPage(0,0)
}

function Permute2(){
document.getElementById("select2").disabledúlse;
document.getElementById("select").disabled=true;
Permute=1;
LoadNextPage(61,0)
}

Je voudrais :

- Soit en gardant LoadNextPage(0,0) et LoadNextPage(0,0) que ce qui soit
affiché dans la case soit la première option dans les deux boîtes

- Soit recupèrer l'indice i de l'option qui est actuellement choisie et
l'ajouter , par ex LoadNextpage(i,0), Loadnextpage(61+j,0)

pour que dans chaque cas il y ait cohérence entre la page affichée et
l'option figurant dans le menu/liste

S'il est possible d'avoir la syntaxe compète cela me soulagerait

Merci beaucoup

jmrw
Avatar
Tantale
Lire Soit en gardant LoadNextPage(0,0) et LoadNextPage(65,0)
Avatar
Tantale
je récupère la valeur de l'index dans les deux menus listes par deux
variables Index1 et Index2 :

<select name="select" id="select"
onChange="LoadNextPage(this.selectedIndex,0); Index1=this.selectedIndex;
Resset=1">

<select name="select2" id="select2"
onChange="LoadNextPage(this.selectedIndex + 61,0);
Index2=this.selectedIndex; Resset=1">

et dans les fonctions Permute1() et Permute2()

function Permute1(){
document.getElementById("select").disabledúlse;
document.getElementById("select2").disabled=true;
Permute=1;
LoadNextPage(Index1,0)
}

function Permute2(){
document.getElementById("select2").disabledúlse;
document.getElementById("select").disabled=true;
Permute=1;
LoadNextPage(61+Index2,0)
}

Ca semble marcher comme je le veux, avec cohérence entre la page affichée et
l'élément du menu lors du basculement.

jmrw
Avatar
SAM
Le 1/19/09 6:29 AM, Tantale a écrit :
je récupère la valeur de l'index dans les deux menus listes par deux
variables Index1 et Index2 :

<select name="select" id="select"
onChange="LoadNextPage(this.selectedIndex,0); Index1=this.selectedIndex;
Resset=1">

<select name="select2" id="select2"
onChange="LoadNextPage(this.selectedIndex + 61,0);
Index2=this.selectedIndex; Resset=1">

et dans les fonctions Permute1() et Permute2()



Tu ne m'as toujours pas dit ce qui activait ces fonctions de
permutation. ?!?
Ha? crlevindiou ! y a des boutons-radio que j'n'avions point vus !?


Il ne devrait il y avoir besoin que d'une seule fonction de permutation.
(pendant que j'y suis je mets l'autre menu à 0)

Voici pour le HEAD :

function $(id) {
return (typeof id != 'string')? id :
document.getElementById? document.getElementById(id) :
document.layers? document.layers[i] :
document.all? document.all[id] : document[id];
}


function Permuter(num) {
var raz = function(x) { // pour mise à 0 du menu en question : x
with(x) {
var i = x.disabled==true; // mémorise son état
x.disabled = false; // obligé de le réactiver sinon
x.selectedIndex = 0; // on ne peut le mettre à 0
x.disabled = i; // remise état d'origine
}
}
// balance disabled menu 2
$("select2").disabled = !($("select2").disabled);
// si la page a déjà été ouverte, la variable 'Permute' est passée à 1
if(Permute==1) {
// balance aussi du menu 1
$("select").disabled = !($("select").disabled);
// suivant le menu activé ...
if(2==num) {
raz($("select"));
LoadNextPage(+$("select2").selectedIndex+61,0);
}
else {
raz($("select2"));
LoadNextPage($("select").selectedIndex,0);
}
}
Permute=1;
}


et pour le HTML :

à la balise body :

<body onload="Permuter()">

et dans les lignes plus bas et un peu perdues :

<input name="choix" type="radio" onClick="Permuter();" value="mi"
checked="checked">
<select name="select" id="select"
onChange="LoadNextPage(this.selectedIndex,0); Resset=1">

<input name="choix" type="radio" onClick="Permuter(2)" value="ro">
<select name="select2" id="select2"
onChange="LoadNextPage(+this.selectedIndex + 61,0); Resset=1">


Si tu ne veux pas de la fonction $()
ça donne :

function Permuter(num) {
var raz = function(x) {
with(x) {
var i = x.disabled==true;
x.disabled = false;
x.selectedIndex = 0;
x.disabled = i;
}
}
document.getElementById("select2").disabled=!(document.getElementById("select2").disabled);
if(Permute==1) {
document.getElementById("select").disabled=!(document.getElementById("select").disabled);
if(2==num) {
raz(document.getElementById("select"));
LoadNextPage(+document.getElementById("select2").selectedIndex+61,0);
}
else {
raz(document.getElementById("select2"));
LoadNextPage(document.getElementById("select").selectedIndex,0);
}
}
Permute=1;
}


Penser à déclarer correctement les variables (en début de script) :

var Resset=1,
Back=0,
Prise=0,
Init=0,
Permute=0;

et supprimer celles :
Index1=0;
Index2=0;

--
sm
Avatar
Tantale
Je vais exploiter cela dans les deux prochains jours

Pour le moment j'ai mis un var. Mais il faut conserver Index1 et Index2
comme variables.

Pour
<Body onload="Permute1()"> J'ai du le remplacer par <Body> car sinon ça
plante sur F5 (entre autre) sans que je comprenne pour quoi.

Encore merci.

jmrw
Avatar
Tantale
Firefox n'a pas de problème avec <body onload="Permute1()">

Mais IE7 plante au rafraichissment (entre autre) sur le site distant (pas en
local)

jmrw
Avatar
Tantale
Ca ca marche avec tous les naigateurs
<BODY
onLoad="MM_callJS('document.getElementById(&quot;select2&quot;).disabled=true;')">

Ca ca plante (sur F5) avec IE7
<BODY onLoad="Permute1()">

et je ne sais pas pourqoi.

Mais je suis heureux que ça marche maintenant

jmrw
Avatar
Tantale
Avatar
SAM
Le 1/19/09 6:37 PM, Tantale a écrit :
Firefox n'a pas de problème avec <body onload="Permute1()">

Mais IE7 plante au rafraichissment (entre autre) sur le site distant (pas en
local)



Je ne comprends rien à ce que tu m'esspliques ;-)

Ma fonction c'est : Permuter()
et non pas : Permute1();

Quant à F5 caisse ?
(chez moi c'est Pomme + R)
(les touches de fonctions sont trop loin pour que je les atteigne ;-) )

Bon à c't'heure yapu de onload, on devrait être peinards.

Tien? non ...

Au rafraichissement Firefox me dit :

Erreur : moves is undefined
Fichier Source : http://www.jmrw.com/Chess/Ugo_Dossi/basej0c.js
Ligne : 242

Je n'ai pas autopsié ces fichiers externes
kessky veut ce basej0c ?
avec son 'moves' alors que rien n'a encore bougé ...


Bon! c'te fois la balise body est nourrie :
<BODY
onLoad="MM_callJS('document.getElementById(&quot;select2&quot;).disabled=true;')">

Ce s'rait-y pas plus simple de parler normalement, au lieu de passer par
un traducteur ?

<body onload="document.getElementById('select2').disabled=true;">

J'y retourne ou faut-il attendre que ça se calme ?

Bon ... toujours le même blème au rafraichissement :-(

Je recharge propre.
J'active le menu 2 et choisis un truc.
Je clique le bouton prochain coup ... hop! Fx me dit :

Erreur : rightDocument.anchors[nOld[nm]] is undefined
Fichier Source : http://www.jmrw.com/Chess/Ugo_Dossi/basej0c.js
Ligne : 248

ce fichier externe n'est plus du tout au gout du jour
ou bien il ne sait que baragouiner le sabir à la IE ?

Ça n'empêche pas les pièces de se déplacer.
ni quand on clique à droite les zigouigouis du style : 10.Nxd5



Tiens ... à droite ...
qu'st-ce que c'est que ce codage ardu :
<span style='font-family:
DiagramTTFritz;color:black;text-decoration:none;text-underline:none'>

et qui a cette police : DiagramTTFritz ?

Ce serait mieux d'utiliser les css avec une liste de polices similaires
(si l'une d'elle est installée elle servira)

DiagramTTCrystals, DiagramTTHabsburg, FigurineCrrCBBoldItalic,
FigurineCrrCBBold, FigurineCrrCBItalic (monospace font),
FigurineHlvCrys-BoldItalic, FigurineHlvCrys-Bold,
FigurineHlvCrys-Italic, FigurineHlvCrys, FigurineHlvHabs-BoldItalic,
FigurineHlvHabs-Bold, FigurineHlvHabs-Italic, FigurineHlvHabs,
FigurineTmsCBBoldItalic, FigurineTmsCBBold, FigurineTmsCBItalic,
FigurineTmsCB, FigurineTmsHabs-BoldItalic, FigurineTmsHabs-Bold,
FigurineTmsHabs-Italic, FigurineTmsHabs, DiagramTTCrystals,
DiagramTTFritz, DiagramTTHabsburg, DiagramTTBlindAll,
DiagramTTBlindBlack, DiagramTTBlindwhite, DiagramTTFritz,
DiagramTTCrystals, DiagramTTHabsburg, FigurineTmsCB

cf :
<http://cg.scs.carleton.ca/~luc/chess.html>

J'ai fini par trouver la DiagramTTFritz ici :
<http://texaschess.googlegroups.com/web/DiaTTFri.ttf?gda=JTFveT0AAAAh-OF0IQHP6H5q1E6P2ORZFjkX_flVhxKoIYWIgjpZB2G1qiJ7UbTIup-M2XPURDR-juOHipRxmM4G0CIZ_Bu3>

Tout de suite ça fait moins zigouigoui ;-)

Tu as mis un lien sur ton site afin que le visiteur puisse avoir cette
fonte ?
(36ko ce n'est pas la mer à boire)

--
sm
1 2