Клуб API Карт

В Joomla1.5.21 + Ajax теряются listeners всех объектов от YaMap

ci4e
12 июня 2011, 22:07

При формировании карты "влоб" все работает нормально.

При формировании по результатам Ajax запроса (значения всех получаемых параметров и их типы проверены!) при том же составе используемых js библиотек у ВСЕХ объектов генерируемой карты теряются обработчики (listeners) событий... Карта становится статической, причем в Chrom сама карта видна, а во всех остальных - просто серый квадрат с неработающими органами управления.

текст внедренного в страницу кода:

 

<script language="javascript" type="text/javascript">
window.addEvent('domready', function(){
    var divid = $('gg');
    var url = '{$url_gp}';
    var gps = new Ajax( url, {
        method: 'get',
        onComplete: function(response){
            var serv = Json.evaluate(response);
                         getMap(divid, Number(serv.map.lng)Number(serv.map.lat), Number(serv.map.scale)
           
    var div2 = $('gggg');
    var y_map = new YMaps.Map(div2);
    y_map.setCenter(new YMaps.GeoPoint(Number(serv.map.lng), Number(serv.map.lat)), Number(serv.map.scale)
    y_map.addControl(new YMaps.TypeControl()
    y_map.addControl(new YMaps.ToolBar()
    y_map.addControl(new YMaps.Zoom()
    y_map.addControl(new YMaps.MiniMap()
    y_map.addControl(new YMaps.ScaleLine()
    y_map.enableScrollZoom(
            }
        }
    }).request(
}

 

процедура getMap подключается в <head> и содержит текст точно такой же, как здесь после вызова getMap.

В итоге формируется 2 карты. Одна (нижняя, в блоке id='gggg') - нормальная во всех браузерах, другая (в блоке 'gg') - без обработчиков...

Какие-нибудь идеи есть? Куда могли пропасть обработчики?

 

8 комментариев
Подписаться на комментарии к посту

ссылка на страницу поможет больше

страница в разработке в локальном режиме, в сеть пока не выкладывал.

Сегодня вообще какая-то чепуха - даже приведенный код уже не работает! Обе карты мертвые! :(

Сейчас попробую выложить страничку в скрытом для всех режиме (если получится)

серые, потому что ВСЕ img имеют стиль display:none. Но вот почему устанавливается этот стиль?! Вроде все нужные библиотеки подключены, значения передаются верные (координаты центра и масштаб карты устанавливаются те, что необходимы)...

Чего в этом супе не хватает? На каком шаге она слетает?

В Chrom табло не выдает никаких ошибок js...

:-|

Единственное, что пока выяснил, это что обращение "var gps = new Ajax( url, {..." гробит ВСЕ обработчики событий на текущей странице. Если в приведенном выше коде вынести за пределы Ajax построение карты (подставив в координаты и масштаб конкретные значения вместо результатов запроса) а Ajax закомментировать - все работает. Раскомментируй Ajax - кранты! - ВСЕ обработчики исчезают!

Итого - что-то не так с Ajax`ом... 

Я использовал то, что в Jooml`овской библиотеке mootools.js (version: '1.12')

 

Дмитрий Путков (Arz_PR)
14 июня 2011, 09:09

а что за компанент? для жумлы

свой контент-плагин на все случаи жизни ;)

Выяснил интересную штуку (хотя, может и не в тему клуба).

Если запускать Ajax из jooml`овской библиотеки mootools(v1.12) в событии window.domready, то реально гробятся все программные (не прописанные в html) обработчики событий на странице.

Выход: использовать Ajax ПОСЛЕ загрузки страницы, в элементах управления страницы. Тогда все работает нормально. Проверено.

Остается вопрос (это уже точно не в тему!) ПОЧЕМУ так происходит? Где глюк? Точнее, как его исправить?