2012-06-03 4 views
0

Использования JQuery 1.7.2, JQuery-инструментов 1.2.7 и GoogleMaps API v3Jquery Tools - загрузить внешнее содержимое в накладку - с пользовательским переменным - Яндекс.Карты, marker.set ('ID')

Первой , вот фрагмент моего кода, который создает маркер в GoogleMaps:

function createMarker(latlng, id) { 
var marker = new google.maps.Marker({ 
    map: googleMap, 
    position: latlng, 
    }); 

marker.set('id', id); 

google.maps.event.addListener(marker, 'click', function() {    
    property_id = marker.get('id'); 

    alert("add listener -> " + property_id); 
      $("#contentWrapBeta").overlay({ 
         mask: { 
         color: '#ebecff', 
          loadSpeed: 100, 
          opacity: 0.5 
          }, 
          effect: 'apple', 
          left: '2%', 
          top: '5%', 
          load: false, 

        onBeforeLoad: function() { 

        alert("on before load" + property_id); 
       var wrap = this.getOverlay().find(".contentWrap"); 
       wrap.load('details.php?id=' + property_id); 

         } 

       }); 

      alert("overlay.load ->" + property_id); 
    $("#contentWrapBeta").overlay().load(); 

}); 

markers.push(marker); 
} 

Так что, когда я нажимаю первый маркер, предупреждение «добавить слушатель» огнь с правильным PROPERTY_ID, то «на перед тем нагрузкой» оповещение имеет правильный идентификатор свойства, а «overlay.load» имеет правильный идентификатор, появляется всплывающее окно, все хорошо ....

Когда я нажимаю на второй маркер на карте, предупреждение «добавить прослушиватель» показывает правильный идентификатор (новый идентификатор маркера, который я установил), однако, «overlay.load» также верен,

" on before load "имеет предыдущие маркеры property_id (!) - независимо от того, что я пытаюсь, я, похоже, не обновляю его новыми идентификаторами маркеров, которые я нажимаю, его« застревает »на первых маркерах property_id - поэтому wrap.load() звонки с тем же & id = variable.

Может ли кто-нибудь сказать мне, почему - его прослушивали меня целыми днями! И я не могу его решить.

большое спасибо

+0

Я пытаюсь воспроизвести вашу ошибку здесь http://jsfiddle.net/xLQ4F/, но она работает нормально для меня. Что мы делаем по-другому? –

+0

спасибо - я исправил проблему - кажется, что jquery-tools - это проблема - после того, как наложение было инициализировано, оно не потянет новые переменные, как показано здесь ... добавив мой ответ – alexalexuk

ответ

0

ах я получил его

Благодаря shonky на #jquery на irc.freenode.org

Кажется, мне нужно, чтобы добавить данные() моему определению наложения

я изменил это:

$("#contentWrapBeta").overlay({ 
        mask: { 
        ...., 
       onBeforeLoad: function() { 
       alert("on before load" + property_id); 
       var wrap = this.getOverlay().find(".contentWrap"); 
       wrap.load('details.php?id=' + property_id); 

      } 

      }); 

до

$("#contentWrapBeta").data('property_id', property_id).overlay({ 
        mask: { 
        ...., 
       onBeforeLoad: function() { 
        var propertyA_id = $('#contentWrapBeta').data('property_id'); 
        alert("on before load" + propertyA_id); 
        var wrap = this.getOverlay().find(".contentWrap"); 
        wrap.load('details.php?id=' + propertyA_id); 

        } 

      }); 

 Смежные вопросы

  • Нет связанных вопросов^_^