我在隐藏标签中加载了谷歌地图。我已经修复了调整大小问题并且工作得很好。然而。我正在阅读史蒂夫施瓦茨的博客,他提到只有一次这种调整大小事件才会发生,这是限制api请求的一种方式(这也在Stackoverflow上有所提及)。所以史蒂夫在2001年的一篇文章建议使用以下内容:
var googleMapsInit = false;
$(document).ready(function(){
$('#tab-container')
.easytabs()
.bind('easytabs:after', function(evt, tab) {
if ( tab.is('#tab3') && !googleMapsInit) {
google.maps.event.trigger(map, 'resize');
map.setCenter(myLatlng);
googleMapsInit = true;
}
});
});
我试过这个,但if ( tab.is('#tab3') && !googleMapsInit) {
并未被识别。我尝试用以下代码替换此行:
if (($tab == '#tab3') && !googleMapsInit) {
但这也不起作用。有没有知道EasyTabs的人知道如何构造这个if语句,那么如果选中隐藏的选项卡并且GoogleMapsInit为false,那么会调用resize事件吗?
我试图通过.js文件查看EasyTabs的线索。我已将$tab
替换为$selectedTab
但没有运气: - (
非常感谢。
答案 0 :(得分:1)
我认为#tab3
是一个href值,就像在EasyTabs样本中一样。然后你可以这样做:
var googleMapsInit = false;
$('#tab-container').easytabs().bind('easytabs:after', function(evt, tab) {
if ( tab.is('[href="#tab3"]') && !googleMapsInit) {
google.maps.event.trigger(map, 'resize');
map.setCenter(myLatlng);
googleMapsInit = true;
}
});
即。在选择器中使用href
。见demo。如果不是这样,那么发布您的标记,以便我可以更新答案。