0

イベントリスナーを介してカーソルの位置を取得するにはどうすればよいですか?

つまり、ユーザーがボタンをクリックした場合、その時点でのカーソルの位置を見つけることは可能ですか? もしそうなら、どのように?

更新 私が十分に明確であったかどうかはわかりません。マウスの位置が必要ありません。私が言いたかったのは、カーソルがフォームの入力フィールド内にある場合、カーソルを見つけてフォーカスがどこにあるかを見つけたいということです。

4

5 に答える 5

0
$("#button").click(function(e){
  console.log(e.clientX)//relative screen
  console.log(e.clientY)
  console.log(e.pageX)//relative document(scroll + window position)
  console.log(e.pageY)
})
于 2013-07-26T21:59:22.577 に答える
0

もちろん、ボタンをクリックすると、フォーカスはどこからも消えます。しかし、直前のフォーカスがどこにあったかを知りたいということは理解できたようです。

次のようなことができます。

$('input, textarea, select').on('focus', function() { 
  console.log($(this).attr('id') + ' just got focus!!');
  window.last_focus = $(this).
});

$('button').on('click', function() {
  console.log('Last focus was on ' + window.last_focus.attr('id'));
});

これは非常に単純な実装です。また、なぜこれが必要なのか非常に興味があります。

何かがフォーカスを失ったときにトリガーされるイベントもありますがfocusout、これはより適切かもしれません。

于 2013-07-27T12:02:56.700 に答える
0

これでうまくいくはずです:http://jsfiddle.net/eTsN3/

$('button').click(function (e) {
    alert(e.pageX + '/' + e.pageY);
});

詳細: http://docs.jquery.com/Tutorials%3aMouse_Position

于 2013-07-26T22:01:38.313 に答える
0

現在どの入力フィールドにフォーカスがあるかは、次の方法で確認できます。

$("input:focus")

ただし、ボタンをクリックすると、入力フィールドの外側をクリックすると、クリックされたハンドラーのクリック ハンドラーを実行する前に入力フィールドがぼやけるため、これは機能しません。私がそれを示すこのフィドルを参照してください。を使用していますpreventDefault()が、これではブレが防げません。

于 2013-07-26T22:22:33.607 に答える