SORU
3 EKİM 2012, ÇARŞAMBA


HTML5 jQuery ile - e.offsetX Firefox tanımlanmamış

HTML5 sayfamda aşağıdaki gibi: mousemove olay ile bir div var

        $('#canvas').mousemove(function(e){
            xpos = e.offsetX;
            ypos = e.offsetY;
            $('#mouse').html("X : "   xpos   " ; Y : "   ypos);
        });

Google Chrome ile gayet iyi çalışıyor. Ama Firefox, hem de değer undefined veriyoruz. Kundakçı, e konsola nesne açmış kullanarak kontrol ettim. offsetX offsetY undefined bulunmuştur.

Google'da aradım, bir çözüm varsa offsetX offsetY Her iki tanımsız layerX layerY, kullanmam gerektiğini söylüyordu. Ama Kundakçı, onu bulmak mümkün değildi. Ve hatta böyle bir deneyin vermiştim:

xpos = (e.offsetX==undefined)?e.layerX:e.offsetX;
ypos = (e.offsetY==undefined)?e.layerY:e.offsetY;

Ama bu aynı zamanda değerler olarak undefined veriyor.

En son jQuery - v1 kullanıyorum.8.2. Ve benim Firefox v14 test ediyorum.0.1

Herhangi bir fikir veya öneriniz var mı ? Şimdiden teşekkürler..


EDİT

Dystroy ve bana yardım ettiğin için vusan için teşekkürler. Yukarıdaki sorunun çözümü aşağıdaki gibidir:

ÇÖZÜM

$('#canvas').mousemove(function(e){
  $('#cursor').show();
  if(e.offsetX==undefined) // this works for Firefox
  {
    xpos = e.pageX-$('#canvas').offset().left;
    ypos = e.pageY-$('#canvas').offset().top;
  }             
  else                     // works in Google Chrome
  {
    xpos = e.offsetX;
    ypos = e.offsetY;
  }
  $('#mouse').html("X : "   xpos   " ; Y : "   ypos);
});

Kredi dystroy ve vusan gider. Sağolun kızlar. :)

CEVAP
5 Aralık 2013, PERŞEMBE


FF layerX layerY kullanım ve diğer tüm tarayıcılarda offsetX offsetY.

$('#canvas').mousemove(function(e){
  xpos = e.offsetX === undefined ? e.originalEvent.layerX : e.offsetX;
  ypos = e.offsetY === undefined ? e.originalEvent.layerY : e.offsetY;

  $('#mouse').html("X : "   xpos   " ; Y : "   ypos);
});

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • sebsebdouze

    sebsebdouze

    7 ŞUBAT 2008
  • TheGamer2323

    TheGamer2323

    25 Ocak 2009
  • TitaniumBackup

    TitaniumBack

    10 EYLÜL 2011