function keyDownHandler(e){
var tick=1;
if(window.event){e=window.event;}
if(e.ctrlKey){tick=10;}
switch(e.keyCode){
case 37:_that.decreaseValue(tick);break;
case 38:_that.setToMax();break;
case 39:_that.increaseValue(tick);break;
case 40:_that.setToMin();break;
}
return false;
}
là par le 'mouseover' je n'actionne le handler que lorsque je suis au
dessus d'un slider donné (j'en ai 6 en tout).
mais comment faire en sorte que les deux puissent fonctionner simultanément ?
une première solution "toute bêbête" est de prendre onkeydown dans un cas, et onkeyup dans l'autre, ça roule...
mais bon si quelqu'un a une solution plus générale... -- Une Bévue
Mickaël Wolff
mais comment faire en sorte que les deux puissent fonctionner simultanément ?
Dans le lien que j'ai posté à ton précédent sujet, il y a la description de l'API DOM Events. Il y est expliqué comment gérer plusieurs gestionnaires d'événements de manière normaliser sur un même élément <http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-EventTarget-addEventListener>.
Attention, MSIE jusqu'à au moins la version 6 n'est pas compatible, et utilises une autre API pour attacher les événements.
mais comment faire en sorte que les deux puissent fonctionner
simultanément ?
Dans le lien que j'ai posté à ton précédent sujet, il y a la
description de l'API DOM Events. Il y est expliqué comment gérer
plusieurs gestionnaires d'événements de manière normaliser sur un même
élément
<http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-EventTarget-addEventListener>.
Attention, MSIE jusqu'à au moins la version 6 n'est pas compatible, et
utilises une autre API pour attacher les événements.
mais comment faire en sorte que les deux puissent fonctionner simultanément ?
Dans le lien que j'ai posté à ton précédent sujet, il y a la description de l'API DOM Events. Il y est expliqué comment gérer plusieurs gestionnaires d'événements de manière normaliser sur un même élément <http://www.w3.org/TR/DOM-Level-3-Events/events.html#Events-EventTarget-addEventListener>.
Attention, MSIE jusqu'à au moins la version 6 n'est pas compatible, et utilises une autre API pour attacher les événements.
Dans le lien que j'ai posté à ton précédent sujet, il y a la description de l'API DOM Events. Il y est expliqué comment gérer plusieurs gestionnaires d'événements de manière normaliser sur un même élément <http://www.w3.org/TR/DOM-Level-3-Events/ events.html#Events-EventTarget-addEventListener>
ah ok, il faut le faire de cette manière (addEventListenr) pas bêtemnt par :
ma_div.onkeydown=keyDownHandler; ...
Attention, MSIE jusqu'à au moins la version 6 n'est pas compatible, et utilises une autre API pour attacher les événements.
oui, MSIE je sais mais je n'ai pas de quoi tester sur MSIE...
merci pour ces infos ! -- Une Bévue
Mickaël Wolff <mickael.wolff@laposte.net> wrote:
Dans le lien que j'ai posté à ton précédent sujet, il y a la
description de l'API DOM Events. Il y est expliqué comment gérer
plusieurs gestionnaires d'événements de manière normaliser sur un même
élément
<http://www.w3.org/TR/DOM-Level-3-Events/
events.html#Events-EventTarget-addEventListener>
ah ok, il faut le faire de cette manière (addEventListenr) pas bêtemnt
par :
ma_div.onkeydown=keyDownHandler; ...
Attention, MSIE jusqu'à au moins la version 6 n'est pas compatible, et
utilises une autre API pour attacher les événements.
oui, MSIE je sais mais je n'ai pas de quoi tester sur MSIE...
Dans le lien que j'ai posté à ton précédent sujet, il y a la description de l'API DOM Events. Il y est expliqué comment gérer plusieurs gestionnaires d'événements de manière normaliser sur un même élément <http://www.w3.org/TR/DOM-Level-3-Events/ events.html#Events-EventTarget-addEventListener>
ah ok, il faut le faire de cette manière (addEventListenr) pas bêtemnt par :
ma_div.onkeydown=keyDownHandler; ...
Attention, MSIE jusqu'à au moins la version 6 n'est pas compatible, et utilises une autre API pour attacher les événements.
oui, MSIE je sais mais je n'ai pas de quoi tester sur MSIE...
function mouseoverHandler(e){ _mouseover=true; var node=e.target; if(node.nodeName==='img'){node.src='slider/background_hover.png';} }
ça marche impec comment avant... mais déjà, l'événement est reçu par l'image dans la <div />, ce qui m'arrange d'ailleurs, le but étant de la changer...
alors que "_bkg_img_node" est obtenu par : _bkg_img_node=document.createElement('div'); donc pourquoi ???
ensuite si j'ai pour "keyupHandler" : function keyupHandler(e){alert('keyupHandler');}
pas d'alerte ;-)
j'intuite qu'il y a un pb particulier car l'event provient du clavier pas de l'UI... -- Une Bévue
function mouseoverHandler(e){
_mouseover=true;
var node=e.target;
if(node.nodeName==='img'){node.src='slider/background_hover.png';}
}
ça marche impec comment avant...
mais déjà, l'événement est reçu par l'image dans la <div />, ce qui
m'arrange d'ailleurs, le but étant de la changer...
alors que "_bkg_img_node" est obtenu par :
_bkg_img_node=document.createElement('div');
donc pourquoi ???
ensuite si j'ai pour "keyupHandler" :
function keyupHandler(e){alert('keyupHandler');}
pas d'alerte ;-)
j'intuite qu'il y a un pb particulier car l'event provient du clavier
pas de l'UI...
--
Une Bévue
function mouseoverHandler(e){ _mouseover=true; var node=e.target; if(node.nodeName==='img'){node.src='slider/background_hover.png';} }
ça marche impec comment avant... mais déjà, l'événement est reçu par l'image dans la <div />, ce qui m'arrange d'ailleurs, le but étant de la changer...
alors que "_bkg_img_node" est obtenu par : _bkg_img_node=document.createElement('div'); donc pourquoi ???
ensuite si j'ai pour "keyupHandler" : function keyupHandler(e){alert('keyupHandler');}
pas d'alerte ;-)
j'intuite qu'il y a un pb particulier car l'event provient du clavier pas de l'UI... -- Une Bévue
unbewusst.sein
Une Bévue wrote:
ensuite si j'ai pour "keyupHandler" : function keyupHandler(e){alert('keyupHandler');}
pas d'alerte ;-)
je continue à me répondre si jamais ça intéressait qq'1 d'autre.
donc j'ai remis document.addaddEventListener( "keyup", keyupHandler, false );
et là le e.taget.nodeName est à "html"...
bon, MAIS mon problème est résolu quand même, dans mon constructeur de slider j'ai donc un : function mouseoverHandler(e){ _mouseover=true; var node=e.target; if(node.nodeName==='img'){node.src='slider/background_hover.png';} document.addEventListener("keyup",keyupHandler,false); //--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } ^ c'est dans un fichier js à part.
dans le document (x)html, j'ai par ailleurs : document.addEventListener("keyup",keydownColorHandler,false);
donc tout les deux sur 'keyup' et là il n'y a pas de conflit... -- Une Bévue
Une Bévue <unbewusst.sein@weltanschauung.com.invalid> wrote:
ensuite si j'ai pour "keyupHandler" :
function keyupHandler(e){alert('keyupHandler');}
pas d'alerte ;-)
je continue à me répondre si jamais ça intéressait qq'1 d'autre.
donc j'ai remis document.addaddEventListener( "keyup", keyupHandler,
false );
et là le e.taget.nodeName est à "html"...
bon, MAIS mon problème est résolu quand même, dans mon constructeur de
slider j'ai donc un :
function mouseoverHandler(e){
_mouseover=true;
var node=e.target;
if(node.nodeName==='img'){node.src='slider/background_hover.png';}
document.addEventListener("keyup",keyupHandler,false);
//--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
}
^
c'est dans un fichier js à part.
dans le document (x)html, j'ai par ailleurs :
document.addEventListener("keyup",keydownColorHandler,false);
donc tout les deux sur 'keyup' et là il n'y a pas de conflit...
--
Une Bévue
ensuite si j'ai pour "keyupHandler" : function keyupHandler(e){alert('keyupHandler');}
pas d'alerte ;-)
je continue à me répondre si jamais ça intéressait qq'1 d'autre.
donc j'ai remis document.addaddEventListener( "keyup", keyupHandler, false );
et là le e.taget.nodeName est à "html"...
bon, MAIS mon problème est résolu quand même, dans mon constructeur de slider j'ai donc un : function mouseoverHandler(e){ _mouseover=true; var node=e.target; if(node.nodeName==='img'){node.src='slider/background_hover.png';} document.addEventListener("keyup",keyupHandler,false); //--^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ } ^ c'est dans un fichier js à part.
dans le document (x)html, j'ai par ailleurs : document.addEventListener("keyup",keydownColorHandler,false);
donc tout les deux sur 'keyup' et là il n'y a pas de conflit... -- Une Bévue