event.clientX отображается как 0 в Firefox для события dragend

function move(e,obj,but){
    if(typeof(obj) === 'string'){
        obj = document.getElementById(obj) ;
    }

    if(typeof(but) === 'string'){
        but = document.getElementById(but) ;
    }

    //elementCoord(but) ;//get the current coords of the button &
    elementCoord(obj) ;//the container

    e = e || window.event ;
    var mouseX = e.clientX ;
    var mouseY = e.clientY ;

    //alert('mouseX='+mouseX+', but.XCoord '+but.XCoord) ;
    var diffX = Math.abs(obj.XCoord - mouseX) ;
    var diffY = Math.abs(obj.YCoord - mouseY) ;

    but.addEventListener("dragend",function(evt){
        evt = evt || window.event ;
        mouseX = evt.clientX ;
        mouseY = evt.clientY ;
        obj.style.left = mouseX - diffX + 'px';
        obj.style.top = mouseY - diffY + 'px';
        alert('mouseX='+mouseX+' diffX='+diffX) ;
        }
   ,false) ;

}

Предупреждение от dragend показывает, что mouseX равен нулю, независимо от того, где он находится в данный момент. Это отлично работает в Chrome, поэтому не уверен, что я делаю неправильно.

Забыл упомянуть, что elementCoord просто получает смещение объекта, добавляя его как свойство. Он отлично работает во всех браузерах.

13
задан Magic Lasso 25 July 2012 в 18:40
поделиться