EasyTabs if语句," if(tab.is())"

时间:2014-08-19 10:25:11

标签: jquery

我在隐藏标签中加载了谷歌地图。我已经修复了调整大小问题并且工作得很好。然而。我正在阅读史蒂夫施瓦茨的博客,他提到只有一次这种调整大小事件才会发生,这是限制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但没有运气: - (

非常感谢。

1 个答案:

答案 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。如果不是这样,那么发布您的标记,以便我可以更新答案。