2016-06-23 31 views
0

問題が発生しました。私は、Firefoxのブラウザ上でマウスの位置を取得する必要があります。しかし、私はコードで間違いをしている可能性があります動作していません。これまで私が行ったことは以下の通りです。FireFoxのマウス位置が正しく動作しない

Javascriptのコード:

function MousePos(event){ 
     if ($.browser.mozilla == true){ 
      if(typeof event.offsetX === "undefined" || typeof event.offsetY === "undefined"{ 
       var targetOffset = $(event.target).offset(); 
       event.offsetX = event.pageX - targetOffset.left; 
       event.offsetY = event.pageY - targetOffset.top; 
       alert(event.offsetX + " " + event.offsetY); 
      } 
     } 
    } 

HTMLコード:私は唯一の警告ボックスを表示した場合

<div class="paymentTracker" onmouseover="MousePos();"> 

</div> 

機能が働いているが、このコードは、問題を持ちます。私はマウスの位置がFirefoxブラウザでのみ必要です。 ありがとうございます。

+0

https://jsfiddle.net/0yptrjdw/

はたぶんclientYプロパティにclientX、pageYにpageXを変更しますか? –

+0

私はこれらのすべてをこれまで行ってきましたが、動作していませんし、ブラウザでコンソールが未定義であることを確認しています。 Mozillaの状態を取り除くと、他のブラウザで動作します。しかし、Mozillaだけでは動作しません。 –

+0

http://stackoverflow.com/questions/12704686/html5-with-jquery-e-offsetx-is-undefined-in-firefox –

答えて

0

これを試してください:それは、あなたがhtmlで定義したonmouseover関数を使用していないために動作しないと思います。

相続人
$(".paymentTracker").mouseover(function(event) { 

      var x = event.clientX; 
var y = event.clientY; 
var coords = "X coords: " + x + ", Y coords: " + y; 
      alert(coords); 

}); 


<div class="paymentTracker"></div> 

<style> 
.paymentTracker {width:300px; height:300px;border:1px solid;} 
</style> 

フィドル:あなたのコード

$(".paymentTracker").mouseover(function(event) { 
var targetOffset = $(event.target).offset(); 
      event.offsetX = event.pageX - targetOffset.left; 
      event.offsetY = event.pageY - targetOffset.top; 
      alert(event.offsetX + " " + event.offsetY); 


}); 
+0

いいえ! clientXとoffsetXは異なっているので、私がコメントfyi –

+0

で提供したリンクをチェックしてください。彼のコードでもうまくいくでしょう –

+0

clientXとoffsetXは異なる番号を与え、OPはoffsetXを望んでいます! clientXは絶対位置に対して相対的に、offsteXはイベント要素に相対的です。 –

関連する問題