无法在谷歌地图信息框中关闭jquery工具提示

时间:2013-12-30 13:34:01

标签: google-maps-markers jquery-ui-tooltip

在我的应用程序中,我在仪表板上有一张巨大的地图,当我加载ajax内容时,我正在放置标记。每个标记都有专门设计的信息框,其中我有一个有两个分支的链接:

  1. 工具提示
  2. 的fancybox
  3. 在鼠标悬停时,我希望工具提示打开,鼠标输出我希望它关闭,点击我希望有三件事:

    1. 要关闭的信息框
    2. 要打开的fancybox
    3. 要关闭的工具提示
    4. 问题在于鼠标悬停和鼠标移动时,工具提示按预期运行,但是当我点击链接时,信息框关闭,fancybox打开但工具提示没有关闭,它会丢失父连接而永远不会关闭。 / p>

      以下是我的代码:

              var infowindow_options = {
                  content: '...<a class="bind_tooltip">...</a>...',
                  disableAutoPan: false,
                  maxWidth: 0,
                  alignBottom: true,
                  pixelOffset: new google.maps.Size( 10, 10 ),
                  zIndex: null,
                  boxClass: 'info_window',
                  closeBoxMargin: '10px 10px 0 0',
                  closeBoxURL: 'http://www.google.com/intl/en_us/mapfiles/close.gif',
                  pane: 'floatPane',
                  enableEventPropagation: true,
                  infoBoxClearance: '10px',
                  position: mrkr.position
              };
              google.maps.event.addListener( mrkr, 'click', function() {
                  infowindow ? infowindow.close() : '';
                  infowindow = new InfoBox( infowindow_options );
                  infowindow.open( map );
                  return false;
              } );
              google.maps.event.addListener( map, 'click', function() {
                  if( infowindow ) {
                      infowindow.close();
                      $( '.bind_tooltip' ).tooltip( 'close' );
                  }
                  return false;
              } );
              $( document ).tooltip( {
                  items: '.bind_tooltip',
                  content: function() {
                      return $( this ).parent().find( '.tooltip' ).html();
                  },
                  position: {my: 'left top+10', at: 'center center'}
              } );
      

      我也收到此错误:

        

      错误:在初始化之前无法在工具提示上调用方法;试图调用方法'关闭'

2 个答案:

答案 0 :(得分:0)

在脚本中的任何其他位置使用之前初始化工具提示。你最好在脚本开头做。

    var infowindow_options = {
        content: '...<a class="bind_tooltip">...</a>...',
        disableAutoPan: false,
        maxWidth: 0,
        alignBottom: true,
        pixelOffset: new google.maps.Size( 10, 10 ),
        zIndex: null,
        boxClass: 'info_window',
        closeBoxMargin: '10px 10px 0 0',
        closeBoxURL: 'http://www.google.com/intl/en_us/mapfiles/close.gif',
        pane: 'floatPane',
        enableEventPropagation: true,
        infoBoxClearance: '10px',
        position: mrkr.position
    };
    google.maps.event.addListener( mrkr, 'click', function() {
        infowindow ? infowindow.close() : '';
        infowindow = new InfoBox( infowindow_options );
        infowindow.open( map );
        return false;
    } );


    $( document ).tooltip( {
        items: '.bind_tooltip',
        content: function() {
            return $( this ).parent().find( '.tooltip' ).html();
        },
        position: {my: 'left top+10', at: 'center center'}
    } );

    google.maps.event.addListener( map, 'click', function() {
        if( infowindow ) {
            infowindow.close();
            $( '.bind_tooltip' ).tooltip( 'close' );
        }
        return false;
    } );

答案 1 :(得分:0)

在开头初始化工具提示并没有解决我的问题。所以我用这种方式解决了这个问题。我之前添加了一段代码,当点击地图时,infowinfow应该关闭。这就是为什么我放弃了我的infowinfow参考。所以删除自动关闭解决了我的问题。