2011-10-24 15 views
1

マウスクリックイベントの座標をページで探したかったのですが、 Chromeでうまく動作するが、Firefoxでは動作しないJSの小さな部分を書きました。デフォルトのグローバル 'イベント'はFirefoxでは利用できないようです。 Chromeで動作していたコードの小さなバージョンは次のとおりです。マウスクリックイベント - firefoxのマウス座標

$("body").click(function() { 
    if (event == undefined) // for Chrome, 'event' is not undefined here 
     var event = window.event;   
    var xx; 
    var yy; 
    if (event) { 
    // Need this for Chrome (and IE) 
     xx = event.x; 
     yy = event.y; 
    } else { 
     // firefox 
     // WHAT SHOULD I DO HERE? 
    } 
    console.log('Click called on body.' + xx + ':' + yy); 
} 

Firefoxの場合はどうすればよいですか?

ご協力いただきありがとうございます。

答えて

2

jQueryのグローバルevent財産問題に対するイベントパラメータをソートあなたのために、心配する必要はありません。また、pageXpageYプロパティを正規化します。

$("body").click(function(evt) { 
    var xx = evt.pageX; 
    var yy = evt.pageY; 

    console.log('Click called on body.' + xx + ':' + yy); 
}); 
0

JQueryは、クリックハンドラの最初の引数としてイベントを渡します。

0

イベントをパラメータとして渡すのを忘れてしまった。以下の形式を使用し、console.log(e)を実行して、関連するすべてのデータを取得します。しかし、私はそれがxとyの座標を持っているか分からない、あなたはクリックした要素の座標を取得する必要があります。

$("body").click(function(e) { 
} 

EDIT:pageXとpageYは他人の束と一緒に、提供されているように見える...(あなたが使用しているように見える)

0

あなたは、例えばクリック機能の呼び出しでイベント変数を渡す必要があります

.click(function(e){ 
    console.log(e); 
}); 
関連する問題