2013-04-13 30 views
6

Nếu tôi hiển thị bản đồ trong tab bị ẩn theo mặc định, sau đó điều hướng đến tab đó (hiển thị), bản đồ sẽ không hiển thị chính xác. Nhưng khi tôi làm mới trang, bản đồ sẽ hiển thị chính xác.Tại sao bản đồ của tôi không hiển thị trong tab jQuery?

Issue Image of map not rendering properly.

Javascript của Google Maps

var map; 
function initialize() { 
    var latlng = new google.maps.LatLng(serLat, serLang); // - 34.397, 150.644); 
    var myOptions = { 
     zoom: 10, 

     width: 1270, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    map = new google.maps.Map(document.getElementById("map"), myOptions); 
    var marker = new google.maps.Marker 
    (
     { 
      position: new google.maps.LatLng(serLat, serLang), 
      map: map, 
      width: 1270, 
      title: 'Click' 
     } 
    ); 
    //  var infowindow = new google.maps.InfoWindow({ 
    //   content: cntnt 
    //  }); 
    //  google.maps.event.addListener(marker, 'click', function() { 
    //   // Calling the open method of the infoWindow 
    //   infowindow.open(map, marker); 
    //  }); 
} 
window.onload = initialize; 

URL của Jquery Tabs http://quickerbook.imobisoft.eu/App_Themes/js/jquery.tabify.js

HTML của Tabs

<ul id="tabs-hd"> 
    <li class="active"><a href="#tab1">Tab One</a></li> 
    <li><a href="#tab2">Tab Two</a></li> 
    <li><a href="#tab3">Tab for Google Map</a></li> 
</ul> 

<div id="tab1">Content for tab one...</div> 
<div id="tab2">Content for tab two...</div> 
<div id="tab3"><div id="map"></div></div> 
+0

tôi thấy mã ngay bây giờ \t // Chức năng bổ sung để giúp thiết lập lại bản đồ và container ranh giới $ ("# showMap"). Click (function() { $ ("# tab2") .css ({'display': 'block'}); $ ("# map_canvas") .ss ({'width': '630px', 'height': '400px'}); khởi tạo(); // alert ('showMap Clicked!'); }); khởi tạo(); – MMeah

+0

Có cùng một vấn đề. Một chi tiết cần lưu ý là nếu bạn tải trang và điều hướng đến tab trước khi nó tải xong, bản đồ có thể hiển thị chính xác. Nếu bạn đợi trang tải đầy đủ và sau đó điều hướng đến tab, nó sẽ không bao giờ hiển thị chính xác. (phải là bằng chứng cho thấy mã không bị hỏng, nhưng đúng hơn là nó hoàn toàn là một vấn đề với việc nó hiển thị vào thời điểm thích hợp) – Lemmings19

Trả lời

9

Có hai điều bạn cần làm:.

  1. Khi bạn bộc lộ tab ẩn, chắc chắn rằng bạn kích thước đúng DIV chứa bản đồ là trong

  2. Hoặc đợi cho đến khi DIV đó hiển thị và có kích thước trước khi tạo bản đồ trong đó, hoặc sau khi DIV hiển thị và có kích thước, hãy gửi tin nhắn thay đổi kích thước tới bản đồ:

google.maps.event.trigger(map, 'resize');

+1

Không giúp được gì: ( –

0

hi i có cùng một vấn đề u mast đã nhấp vào nút Tab của bạn và sau đó bạn phải gọi initialize(); xem những gì tôi đang làm tôi đặt chức năng này trên mỗi tab nhấp vào thuộc tính

function ChangeTabs(e){ 
    $('#tabs-1').hide(); 
    $('#tabs-2').hide(); 
    $('#tabs-3').hide(); 
    $('#tabs-4').hide(); 

    var a = $.browser; 
    if (a.msie) 
    { 
     $(e.srcElement.hash).show(); 
     if(e.srcElement.hash=='#tabs-3') 
      initialize(); 
    } 
    else 
    { 
     $(e.currentTarget.hash).show(); 
     if(e.currentTarget.hash=="#tabs-3") 
      initialize(); 
    } 
1

Tất cả những gì tôi đã làm được thêm chiều cao theo kiểu của phần tử div và bản đồ bắt đầu xuất hiện.

<div class="event-details" style="height:500px;" id="map_canvas"> 

</div> 
Các vấn đề liên quan