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

  • Candyrat Records

    Candyrat Rec

    10 Mayıs 2006
  • katherine gomez

    katherine go

    1 Aralık 2011
  • The Onion

    The Onion

    14 Mart 2006