2009-08-20 2 views
1

Во-первых, это мой - Test SiteJavascript в Google Maps Info Window - не работает в IE

Это моя тестирования площадка для Google карты, я не относительно себя с эстетикой. У меня возникают проблемы с тем, что некоторые jQuery запускаются, когда я нажимаю ссылку внутри информационного окна. Если вы знакомы с Google Maps это, когда я создаю мой InfoWindow:

GEvent.addListener(marker,"click", function() { 
map.openInfoWindow(point,'<div class="infoWindow">'+windowText+'\ 
'+<a href='#' class='showme' onclick='return false;'>Show Comments</a>+'\ 
</div>');     

/*On click, show all the comments*/ 
$('.showme').live('click', function(){ 
    //alert('hey'); 
    $('.comment').toggle('slow'); 
}); 

              }); 

Чтобы понять, как это работает, это может быть проще просто просмотреть исходный код на этой странице. Первоначально я вместо того, чтобы использовать «живое событие», делал обычный «щелчок», который не работал. Я предполагал, что информационное окно было его собственной средой отдельно от главного окна.

Это было не так, я верю, когда пробовал «живое событие», и он начал работать в Chrome и FF. Итак, теперь я пытаюсь понять, почему событие click не работает ни в одном браузере, и почему live-событие будет работать во всем, кроме IE.

У кого-нибудь есть вход?

Спасибо,
Леви

Edit: К сожалению, если это не было ясно «показать комментарии» ссылку в информационном окне, где моя беда.

ответ

2

Похоже, что есть некоторые проблемы с использованием функции jQuery Live() с IE. Была предложена рекомендация here, чтобы попытаться установить привязку. Я читал в некоторых других местах, что использование другого события мыши может работать так же, как mouseup или mousedown. Однако это определенно похоже на ошибку IE.

+0

О, ничего себе, это сделал трюк. Мне все равно было бы интересно узнать, почему регулярные события кликов не работают внутри информационного окна, но мне придется исследовать это немного больше. – Levi

0

Плагин livequery, похоже, работает в информационных окнах с IE.

$('.showme').livequery(function(){ 
    $(this).click(function(){ 
    $('.comment').toggle('slow'); 
    }); 
}); 
0

пользователя Изменение live('click',...) к live('mouseup', ...) установил его в моем случае.