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

  • Ciaran Blumenfeld

    Ciaran Blume

    20 NİSAN 2009
  • Doug Bernards

    Doug Bernard

    7 Kasım 2007
  • Vladimir Jenko

    Vladimir Jen

    1 Mart 2010