Рафаэль: Мапаэль: Триггер обновления не работает, и ошибок нет

На основании этого минимального примера Mapael (часть соответствующего кода приведена ниже):

$('#refresh').on('click', function() {

        // Update some plots and areas attributes ...
        var updatedOptions = {'areas' : {}, 'plots' : {}};

        // add some new plots ...
        var newPlots = {
            "Dijon" : {
                latitude : 47.323056,
                longitude : 5.041944
            }
        }

        $(".mapcontainer").trigger('update', [updatedOptions, newPlots, [], {animDuration : 1000}]);
    });

Я создал этот пример страницы с триггером обновления, который работает нормально. Теперь я хочу переместить это на мою настоящую php-страницу приложения, и она не работает! Пожалуйста, посмотрите здесь.

Раздражает то, что консоль моего браузера не показывает никаких ошибок! Как я могу отладить эту проблему, если я не вижу ошибок? Пожалуйста помогите!

Если вам нужна дополнительная информация, пожалуйста, спросите. Спасибо за любые усилия.

PS: Пожалуйста, не обращайте внимания на плохую стилизацию, что скрипт и код CSS находятся в теле. Я исправлю это, как только эта проблема будет решена. Я не думаю, что это проблема, так как пример страницы, которая работает точно так же, и не имеет этой проблемы.

1 ответ

Решение

Во-первых, обратите внимание, что вы используете разные версии Maphael:

  • на странице, где это работает, версия 1.1.0,
  • на вашей странице это 2.0.0-dev.

Во-вторых, после установки точки останова в методе onUpdateEvent в Maphael (строка 876) просто кажется, что данные о событиях просто не передаются в обработчик.

Имеет ли событие "update" одинаковую подпись для Maphael/Raphael 1.x и 2.x? Это место, на которое вы должны посмотреть.

Обновление: я взглянул на внутреннюю часть 2.0.0-dev, и кажется, что ваш код обновления должен выглядеть примерно так:

var updatedOptions = {'areas': {}, 'plots' : {},
    // add some new plots ...
    newPlots: {
        "Dijon" : {
            latitude : 47.323056,
            longitude : 5.041944
        }
    },
    animDuration : 1000
};

$(".mapcontainer").trigger('update', updatedOptions);

(последняя строка может быть:

$(".mapcontainer").trigger('update', [updatedOptions]);

)

Пожалуйста, проверьте, помогает ли это (хотя я бы порекомендовал вам перейти на стабильную версию Map.0 1.1.0).

Другие вопросы по тегам