jquery hoverintent с гугл картами gmarker - PullRequest
0 голосов
/ 09 июля 2011

Допустим, у меня есть карта Google v2 GMarker, подобная этой:

var marker = new GMarker(point, {
  icon :myicon,
  title :'whatever'
});
GEvent.addListener(marker, "mouseover", function() {
  myover(pointid);
});
GEvent.addListener(marker, "mouseout", function() {
  myout(pointid);
});

Мне бы хотелось, чтобы поведение, похожее на jquery - hoverintent вместо обычных событий mouseover и mouseout, чтобы избежать гиперактивности при перемещении мыши поэкран и случайно касаясь GMarker.Я хотел бы, чтобы мои функции запускались только тогда, когда мышь замедляется или останавливается на маркере.Это можно решить с помощью hoverintent для обычных dom-элементов, таких как строки таблицы (tr).

Моя проблема в том, что я не знаю, как выбрать GMarker с помощью jQuery.Если это не может быть сделано, как я могу подключить мои GMarkers к зависанию каким-либо другим способом?

Спасибо,

1 Ответ

1 голос
/ 09 июля 2011

Я вроде решил эту проблему, свернув свое собственное на основе этого ответа: Задержка события зависания jquery?

Это дает только задержку без медленно движущегося курсора мыши, но пока этого достаточно.

Вот что получилось:

GEvent.addListener(marker, "mouseover", function() {
  if (this.timer) {
    clearTimeout(this.timer);
    this.timer = null;
  }
  this.timer = setTimeout(function() {
    myover(pointid);
  }, 100);
});
GEvent.addListener(marker, "mouseout", function() {
  if (this.timer) {
    clearTimeout(this.timer);
    this.timer = null;
  }
  myout(pointid);
});
...