var x = event.target||event.srcElement;
document.getElementById(x.id).style.left = 200 + "px" ;
document.getElementById(x.id).style.top = 100 + "px" ;
Fonctionne très bien sur Google Chrome et IE mais pas sur Firefox. J'ai essayé sur google. google dit event.srcElement (fonctionne sur IE mais pas sur Firefox). J'ai donc ajouté event.target mais je ne travaille toujours pas. Y a-t-il d'autres modifications à faire pour travailler sur Firefox? En passant, j'utilise la version 3.5 de Firefox.
function up()
{
dragok = false;
document.onmousemove = null;
var x = event.target||event.srcElement;
document.getElementById(x.id).style.left= 200 + "px" ;
document.getElementById(x.id).style.top= 100 + "px" ;
}
S'il vous plaît aidez-moi à le faire fonctionner sur firefox
Assurez-vous de définir event
en tant que paramètre formel du gestionnaire.
IE
le définit globalement, et Chrome
le définit aux deux endroits, donc cela fonctionne dans les deux sens, mais Firefox
le définit uniquement comme paramètre de fonction.
function up( e ) {
// ^-----------------------------------------------------+
if( !e ) e = window.event; // <---needed this --- and this ->--+
dragok = false;
document.onmousemove = null;
var x = e.target||e.srcElement; // <--- and these
document.getElementById(x.id).style.left= 200 + "px" ;
document.getElementById(x.id).style.top= 100 + "px" ;
}
J'ai résolu mon problème en utilisant Jquery. Par exemple, pour obtenir l'identifiant d'un élément, vous pouvez utiliser:
var x = $(this).attr('id');
Cette solution fonctionne également dans le navigateur Firefox. Lorsque vous démarrez l'action keydown
, vous devez définir la propriété event
sur une variable globale comme celle-ci.
var keyEvent=null;
Affectez cette propriété event
à keyEvent
et .item
est l'élément cible.
$(document).on("keydown",'.item', function(e){
keyEvent=e;
},this))
then.Utilisez keyEvent
dans votre code.
function up( e ) {
if( !e ) e = keyEvent;
dragok = false;
document.onmousemove = null;
var x = e.target||e.srcElement;
document.getElementById(x.id).style.left= 200 + "px" ;
document.getElementById(x.id).style.top= 100 + "px" ;
}
Remarque : N'essayez pas de définir la propriété event
sur la variable globale window
.