Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2008, 19:35
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Google maps
Доброго времени суток =)
Мужики, нужна помощь ( для знатоков Google.map )
создаю new GPolyline
создаю event GEvent.addListener( GPolyline, 'mousemove', Handler ) ;

function Handler( evt ) {
evt || ( evt = window.event ) ;
...
}

под IE ясно что event будет, а как под FF вытащить evt или сделать чтобы он туда передавался ?
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2008, 19:43
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

Виталий,
Дык в нормальные браузеры обьект события передается в хэндлер уже сам. И это, кстати, отражено в заголовке функции.
Так что все, что вам надо, это переписать чуть-чуть, вот так:
function Handler (evt) {
  evt = evt || window.event;
  //...
}


И, самое главное, Виталий, — есть мнение, что разработчики Google Maps API уже всю кроссбразуерную работу сделали для вас, и в хэндлере вам надо просто обращаться к этому самому аргументу evt, чтобы получить обьект события
Ответить с цитированием
  #3 (permalink)  
Старый 08.10.2008, 20:35
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Сообщение от hogart Посмотреть сообщение
Виталий,
Дык в нормальные браузеры обьект события передается в хэндлер уже сам. И это, кстати, отражено в заголовке функции.
Так что все, что вам надо, это переписать чуть-чуть, вот так:
function Handler (evt) {
  evt = evt || window.event;
  //...
}


И, самое главное, Виталий, — есть мнение, что разработчики Google Maps API уже всю кроссбразуерную работу сделали для вас, и в хэндлере вам надо просто обращаться к этому самому аргументу evt, чтобы получить обьект события
Блин, яж написал для тех кто разбирается в google map
evt = evt || window.event и evt || ( evt = window.event ) в данном контексте одно и то же, написал же evt под FF не передается т.к. обработчик Handler's у них свой ...
если не понятно, могу выложить пример =)
Ответить с цитированием
  #4 (permalink)  
Старый 08.10.2008, 20:40
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Из описания Google Map API
GEvents GPolyline
Events Arguments
click latlng
mouseover none
mouseout none

в случае onclick если использовать тот же handler, то вместо evt придет Arguments latlng , как под FF так и под IE
Ответить с цитированием
  #5 (permalink)  
Старый 08.10.2008, 20:45
Профессор
Отправить личное сообщение для hogart Посмотреть профиль Найти все сообщения от hogart
 
Регистрация: 18.04.2008
Сообщений: 152

Никогда не поверю, что в обработчике, навешанном не через attachEvent(), а через какую-то библиотеку, да еще вышедшую из недр Гугла, первым аргументом не идет собсно событие.

Код в студию.
Гмапс или не гмапс, JS везде один и тот же.
Ответить с цитированием
  #6 (permalink)  
Старый 08.10.2008, 20:47
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

где ты в коде нашел attachEven ?
Ответить с цитированием
  #7 (permalink)  
Старый 08.10.2008, 21:14
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

если не сработает так
function() {
  var ev = arguments[0] || window.event;
}

то значит функция не привязывается к объекту непосредственно, а добавляется в стек и затем вызывается внутри гугловского обработчика, и непосредственно в этой функции объект-событие получить не удастся.
Ответить с цитированием
  #8 (permalink)  
Старый 09.10.2008, 13:24
Аспирант
Отправить личное сообщение для Виталий Посмотреть профиль Найти все сообщения от Виталий
 
Регистрация: 20.07.2008
Сообщений: 30

Сообщение от Octane Посмотреть сообщение
если не сработает так
function() {
  var ev = arguments[0] || window.event;
}

то значит функция не привязывается к объекту непосредственно, а добавляется в стек и затем вызывается внутри гугловского обработчика, и непосредственно в этой функции объект-событие получить не удастся.
Да, да, да... это я уже и писал =), увы - пришлось написать бубен :cool:
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google Chrome Андрей Параничев Opera, Safari и др. 42 02.08.2009 14:23
Скрипты google Snipe AJAX и COMET 13 03.11.2008 09:46
Как создать проверку вводимого пароля на стойкость, используя API Google. Александр Черепов Элементы интерфейса 4 03.11.2008 02:16
Кнопки Google input scratcherz Элементы интерфейса 6 14.10.2008 18:45