Классические вкладки jQuery с выпуском Bing Maps - PullRequest
1 голос
/ 04 марта 2011

Я знаю, что есть несколько проблем с вкладками jQuery и использованием Карт. И я видел множество исправлений, и я на полпути туда. Но у меня есть самая неясная проблема, и я надеюсь, что кто-то может понять, почему.

Это мой код для вкладок

$("#contactTabs").tabs({ spinner: 'Loading <img src="../images/icons/ajax-loader.gif" />' });

$('#contactTabs').bind('tabsshow', function(event, ui) {
   if (ui.panel.id == "Map") {
   GetMap();
}
});

Который в настоящее время не работает. Но я проводил некоторое тестирование и добавил в ALERT (), чтобы посмотреть, пытается ли даже «GetMap ()» быть загруженным ... так что это был код, который я тестировал, и он прекрасно работает.

$("#contactTabs").tabs({ spinner: 'Loading <img src="../images/icons/ajax-loader.gif" />' });

$('#contactTabs').bind('tabsshow', function(event, ui) {
   if (ui.panel.id == "Map") {
   alert("load map");
   GetMap();
}
});

Так что я понятия не имею, почему добавление ALERT () приводит к загрузке карты, а удаление ALERT просто не загружает карту вообще.

Есть какие-нибудь разъяснения, которые кто-то может дать мне по этому вопросу? Заранее спасибо!

1 Ответ

2 голосов
/ 04 марта 2011

Попробуйте обернуть функцию GetMap () в следующее.

setTimeout(
  function(){
     GetMap();
  }, 1000);

Вероятно, это происходит потому, что JavaScript выполняет много кода асинхронно, GetMap () вызывается до того, как данные действительно будут полностью загружены.

В примере предполагается, что данные будут загружены в течение 1 секунды. Однако перед вызовом GetMap () рекомендуется проверить, что запрошенные данные полностью загружены.

...