Определить положение мыши за пределами событий (использующий jQuery)?

Я обычно использую:

var list = new List<T> ();
fillList (list);
var randomizedList = new List<T> ();
var rnd = new Random ();
while (list.Count != 0)
{
    var index = rnd.Next (0, list.Count);
    randomizedList.Add (list [index]);
    list.RemoveAt (index);
}
38
задан pbz 19 April 2012 в 18:55
поделиться

2 ответа

Невозможно. Однако вы можете использовать тот же подход в учебнике, чтобы сохранить позицию в глобальной переменной и прочитать ее вне события.

Вот так:

jQuery(document).ready(function(){
   $().mousemove(function(e){
      window.mouseXPos = e.pageX;
      window.mouseYPos = e.pageY;
   }); 
})

Теперь вы можете использовать window.mouseXPos и ] window.mouseYPos откуда угодно.

47
ответ дан 27 November 2019 в 03:22
поделиться

Это началось как комментарий к ответу Четана Састри , но я понял, что в качестве ответа также стоит написать:

Я был бы осторожен с уровнем документа, постоянно повторяющимся событием mousemove, даже если вы опрашиваете только о позиции курсора. Это большая обработка и может загромождать любой браузер, особенно медленный, как IE.

Такая проблема почти наверняка поднимает вопрос о конструктивном решении: если вам не нужно обрабатывать событие мыши для опроса позиции курсора, действительно ли вам нужна позиция курсора? Есть ли лучший способ решить проблему, которую вы пытаетесь решить?

Правка: даже в Safari 4, что (преуменьшение) очень быстро , это единственное событие mousemove делает каждое взаимодействие с этой страницей руководства заметно нестабильным для меня. Подумайте, как это повлияет на отношение пользователей к вашему сайту или приложению.

29
ответ дан 27 November 2019 в 03:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: