Я использую jQuery для захвата события:
$('input').focus(function(e){
console.log( e.pageX, e.pageY );
});
Кажется, это не работает ... есть идеи об альтернативных способах получения положения мыши?
Помощь была бы отличной.
Я использую jQuery для захвата события:
$('input').focus(function(e){
console.log( e.pageX, e.pageY );
});
Кажется, это не работает ... есть идеи об альтернативных способах получения положения мыши?
Помощь была бы отличной.
Вы можете получить координаты мыши только с помощью событий мыши. Если вы хотите зафиксировать положение мыши, вы можете использовать глобальный прослушиватель событий mousemove
и сохранить координаты в наборе переменных, к которым позже может получить доступ функция focus
. Пример:
var pageX, pageY; //Declare these globally
$(window).mousemove(function(e){
pagex = e.pageX;
pageY = e.pageY;
});
$('input').focus(function(){
console.log(pageX, pageY); // These variables have been defined by the global
// mousemove event
});
focus
не является событием мыши.
- person Rob W; 02.11.2011
x
и y
. Затем я подумал, что весьма вероятно, что x или y уже определены внутри функции, вызывая конфликты. Поэтому я решил использовать описательные, но компактные имена переменных pageX
и pageY
.
- person Rob W; 02.11.2011
Если вы пытаетесь получить позицию относительно элемента, попробуйте вместо этого что-то вроде этого:
$("input").focus(function(e){
var relativeX = e.pageX - this.offsetLeft;
var relativeY = e.pageY - this.offsetTop;
});