2015-10-27 9 views
0

У меня есть приложение, в котором я динамически загружаю маркеры, перебирая набор данных.JQuery Ajax с листами и ошибками MarkerCluster

for (var i = 0; i < data.length; i++) { 
       var plateNo = data[i].PLATE_NUMBER; 
       var permitNo = data[i].PERMITINFOID; 
       var popup = '<h5>EPS</h5>' + 'Plate:' + plateNo + '<br/>' + 
        ' Permit: <a class=\'link\' href=' + url + '>' + permitNo + '</a>' + 
        '<p style=\"color:blue\">' + '' + '<a class=\'link\' href=' + url + '>' + 
        'Import' + '</a>' + '<br/>' + '<a class=\'link\' href=' + url + '>' + 
        'Duplicate' + '</a>' + '<br/>' + '<a class=\'link\' href=' + url + '>' + 
        'Removed' + '</a>' + '<br/>' + '</p>'; 

       var m = L.marker([data[i].REF_LATITUDE, data[i].REF_LONGITUDE], { icon: epsiconR, draggable: 'true' }) 
            .bindPopup(popup); 
       markerClusters.addLayer(m); 

       } 
       map.addLayer(markerClusters); 
      map.invalidateSize(false); 

Я прилагаю обработчик событий для каждого из элементов с классом «ссылкой», как это:

map.on('popupopen', function() { 
      $('.link').click(function (e) { 
       createDialog(); 
      }); 
     }); 

Я Аякс загружая другую страницу в методе CreateDialog так:

function createDialog() { 
      $("#testPara").slideToggle("slow"); 
     $.ajax({ 
      dataType: 'html', 
      url: '/home/UpdateInventory', 
      success: function (data) { 
       $('#testPara').html(data); 
      } 
     }); 

}

маркеры кластер тонкий и нажав на всплывающих окнах Ajax загружает ДИВ просто отлично. Однако, как только нагрузка Ajax будет сделана, если я попытаюсь увеличить или уменьшить масштаб карты или перетащить карту вокруг, я получаю сообщение об ошибке Не могу прочитать свойство «lat» undefined

Карта просто зависает после этого. Я застрял на этом целый день и был бы очень признателен за любую помощь или вклад.

Этой скрипку показывает проблему, когда вы нажимаете на ссылку консоль показывает ошибку

http://jsfiddle.net/pk9vbvs4/

Благодарность

+1

Ваша скрипка не воспроизводит поведение, которое вы описываете. Ошибка, которую я вижу, - 'Uncaught TypeError: Невозможно прочитать свойство 'src' of null' (происходит при щелчке по всплывающей ссылке), и после этого нет проблем с перетаскиванием или масштабированием. Ошибка в скрипке, по-видимому, связана с URL-адресом AJAX, указывающим на '/', то есть на самой странице jsfiddle, а ошибка 'Can not read property 'lat' undefined', похоже, связана с чем-то другим. – nathansnider

ответ

1

Мне кажется, что вы пытаетесь загрузить страницу, которая имеет сценарии, сталкиваются с текущими сценариями страницы (и, возможно, с идентификатором документа). По крайней мере, в вашем jsFiddle вы пытаетесь загрузить ту же страницу (используя url: '/'), которая разбивает все JavaScript.

Все сценарии загружаются дважды, а код инициализации снова запускается на переменные, которые не переинициализируются, поэтому происходят странные вещи.

Демонстрация чего-то без скрипта внутри: http://jsfiddle.net/pk9vbvs4/1/ Все по-прежнему работает нормально.

Поскольку у нас нет подробной информации о целевой странице, я не могу точно сказать, что это основная причина для вашей проблемы.

+0

Вы правы. Это не проблема, как только я просмотрел вашу скрипку. Спасибо, что нашли время и силы ... – w2olves