Клуб API Карт

Карта не работает с jquery.

Пост в архиве.

Создал карту. Всё работало пока не подключил jquery. Теперь работают либо карта либо jquery.

Не подскажите как с этим бороться?

Код карты:

 

<div id="error"></div>
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=КЛЮЧ==&onerror=apifault" type="text/javascript"></script>
<script type="text/javascript">
    window.onload = function() {
 var map = new YMaps.Map(document.getElementById("YMapsID"));
     map.setCenter(new YMaps.GeoPoint(КООРДИНАТЫ), 17)
        map.addControl(new YMaps.TypeControl());
        map.addControl(new YMaps.ToolBar());
        map.addControl(new YMaps.Zoom());
        map.addControl(new YMaps.MiniMap());
        map.addControl(new YMaps.ScaleLine());
        map.addControl(new YMaps.SearchControl({
         resultsPerPage: 5, 
         useMapBounds: 1      
            }));
 var placemark = new YMaps.Placemark(new YMaps.GeoPoint(КООРДИНАТЫ));
     placemark.setBalloonContent("КОНТЕНТ");
        map.addOverlay(placemark);
     placemark.openBalloon();
    }
function apifault (err) {
    window.onload = function (err) {
        var errorContainer = document.getElementById("error");
        errorContainer.innerHTML = "При загрузке API произошел сбой. Сообщение об ошибке: \"" + err + "\"";
        errorContainer.style.display = "block";
    }
}
</script>   
<div id="YMapsID" style="width:100%;height:800px"></div>
 

 

5 комментариев
Sergey Konstantinov
28 января 2016, 06:08

1. В составе API карт уже есть jQuery версии 1.3.2 - YMaps.jQuery

2. Попробуйте

window.onload = function () { ...

заменить на

YMaps.jQuery(function () { ...

Если это поможет, значит подключаемые Вами скрипты переписывают window.onload.

Спасибо, это помогло.

Если я правильно понял то

window.onload = function ()  должно декларироваться только один раз? Либо эти функции надо по разному называть?

Я просто не очень по знаком с javascript.

Или window.onload = вообще один раз декларируется в независимости от функций?

Sergey Konstantinov
28 января 2016, 06:08

window.onload = function () {} - вешает обработчик на событие загрузки страницы. Так можно сделать сколько угодно раз, но каждое последующее присваивание перекрывает предыдущее.

Sergey Konstantinov
28 января 2016, 06:08

Соответственно, сработает только последний обработчик.