OVH Cloud OVH Cloud

souris sur onkeydown

3 réponses
Avatar
Saad
bonjour,

j'ai une fonction de ce type

function my_function(e)
{//v1.0
if (e.keyCode==13)
{
action;
}
else if (e.keyCode==37)
{
action;
}
else if (e.keyCode==38)
{
....
}
}

Vous l'avez sans doute compris, la fonction réagis au clavier.
Cela fonctionne sans problème.
La fonction est déclencher avec l'événement onkeydown(event) dans le body.


Maintenant je désirerais déclencher certaines actions à partir d'un lien
(ou d'un bouton).

le seul moyen que j'ai trouver, c'est de modifier ma fonction
comme ceci

onkeydown(event.keyCode); // ds le body

function my_function(key)
{//v1.1
if (key==13)
{
action;
}
else if (key==37)
{
action;
}
...
}

le lien onclick="my_function(13)"
ou onclick="my_function(37)"

Y'avait-il un moyen de déclencher les actions en gardant la première
version de ma fonction ?

merci

3 réponses

Avatar
ASM
bonjour,

j'ai une fonction de ce type

function my_function(e)
{//v1.0
if (e.keyCode=)
{
action;
}
else if (e.keyCode=7)
{
action;
}
else if (e.keyCode=8)
{
....
}
}

Vous l'avez sans doute compris, la fonction réagis au clavier.
Cela fonctionne sans problème.
La fonction est déclencher avec l'événement onkeydown(event) dans le body.


Maintenant je désirerais déclencher certaines actions à partir d'un lien
(ou d'un bouton).


Oui? et alors ?

<a href="#" onclick="alert('moi '+this.name+' je suis cliqué')"
name=ursule>voir à voir</a>

en quoi le keydown du body gène ?
pisqu'ici y a pas d'key

Maintenant si c'est pour avoir une action différente au clic sur le
bouton (ou lien) suivant la touche pressée

il suffit d'avoir une variable mémorisant cette touche


<script type="text/javascript">
var cle = 0;
function macle(e) {
cle = e.keyCode;
document.getElementById('inf').innerHTML = cle;
}
function choix(action,action1,action2,action3) {
var choix='';
switch(cle) {
case 13: choix = action1; break;
case 37: choix = action2; break;
case 38: choix = action3; break;
default: choix = action; break;
}
cle=0;
return choix;
}
</script>
</head>
<body onkeydown="macle(event);">
<button onclick="alert(choix('raté','bof !','pas mal','bravo !'));">
appréciation
</button>
<button
onclick="var info=document.getElementById('inf');
info.innerHTML = choix('carreau','coeur','trefle','pique');
">
couleur carte à jouer
</button>
<p id="inf"></p>



--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Saad
bonjour,

j'ai une fonction de ce type

function my_function(e)
{//v1.0
if (e.keyCode=)
{
action;
}
else if (e.keyCode=7)
{
action;
}
else if (e.keyCode=8)
{
....
}
}

Vous l'avez sans doute compris, la fonction réagis au clavier.
Cela fonctionne sans problème.
La fonction est déclencher avec l'événement onkeydown(event) dans le
body.


Maintenant je désirerais déclencher certaines actions à partir d'un
lien (ou d'un bouton).


Oui? et alors ?

<a href="#" onclick="alert('moi '+this.name+' je suis cliqué')"
name=ursule>voir à voir</a>

en quoi le keydown du body gène ?
pisqu'ici y a pas d'key

Maintenant si c'est pour avoir une action différente au clic sur le
bouton (ou lien) suivant la touche pressée

il suffit d'avoir une variable mémorisant cette touche


<script type="text/javascript">
var cle = 0;
function macle(e) {
cle = e.keyCode;
document.getElementById('inf').innerHTML = cle;
}
function choix(action,action1,action2,action3) {
var choix='';
switch(cle) {
case 13: choix = action1; break;
case 37: choix = action2; break;
case 38: choix = action3; break;
default: choix = action; break;
}
cle=0;
return choix;
}
</script>
</head>
<body onkeydown="macle(event);">
<button onclick="alert(choix('raté','bof !','pas mal','bravo !'));">
appréciation
</button>
<button
onclick="var info=document.getElementById('inf');
info.innerHTML = choix('carreau','coeur','trefle','pique');
">
couleur carte à jouer
</button>
<p id="inf"></p>






En fait ta fonction déclenche l'action qui correspond à la dernière
touche activer.

J'ai du mal m'exprimer.
Je voulais que mon lien/button, déclenche la même action que mon
raccourcis clavier.

Donc si je click sur le lien1, il exécute le même code que le racourcis
clavier 37 par exemple.

Bien sur cela est possible en créant plusieurs fonctions chaque fois. ou
en utilisant la v1.1.

Mais, je voulais savoir si il était possible de passer un paramètre
équivalent à "e.keyCode" pour exécuter le code.

if (e.keyCode=7)
{
....
....
....
....
}
...

merci


Avatar
ASM

J'ai du mal m'exprimer.
Je voulais que mon lien/button, déclenche la même action que mon
raccourcis clavier.


essayer qque chose comme

<script type="text/javascript">

function mafonction(e) {
var cle = 0;
var e = e || window.event;
if(e!=null)
{
if (e.keyCode) cle = e.keyCode;
else
if (e.which) cle = e.which;
else cle = e;
}
switch(cle) {
case 13: alert('treize'); break;
case 37: alert('trentesept'); break;
case 38: alert('trentehuit'); break;
default: alert('rien'); break;
}
}
</script>
</head>
<body onkeydown="mafonction(event);">
<p><a href="#" onclick="mafonction(13);return false;">13</a>
<p><a href="#" onclick="mafonction(37);return false;">37</a>
<p><a href="#" onclick="mafonction(38);return false;">38</a>
<p><a href="#" onclick="mafonction();return false;">vide</a>



--
Stephane Moriaux et son [moins] vieux Mac