Я динамически отправляю фрагмент html
в браузеры. Этот фрагмент кода содержит SVG
и кусок Javascript:Запуск динамически загруженного jQuery после завершения загрузки динамически загруженного
<div class="traffic-map-wrap">
<embed id="traffic-map" type="image/svg+xml" class="traffic-map" src="{traffic-map-svg}" />
</div>
<script>
$(function() {
svgPanZoom('#traffic-map', {
zoomEnabled: true,
controlIconsEnabled: false,
minZoom: 0.1,
maxZoom: 10000
});
});
</script>
Функция в сниппет работает нормально, но svgPanZoom
терпит неудачу, потому что в настоящее время работают до SVG
полностью загружен (TypeError: e.getSVGDocument(...) is null
). С другой стороны, если я ввести alert()
и дать ему пару секунд, прежде чем нажимать кнопку, все работает отлично:
<script>
$(function() {
alert();
svgPanZoom('#traffic-map', {
zoomEnabled: true,
controlIconsEnabled: false,
minZoom: 0.1,
maxZoom: 10000
});
});
</script>
Очевидно, что это не славное решение так , как я могу запустить динамически загруженный скрипт после того, как все был загружен? Какой-то эквивалент $(window).load(function(){...});
?
Если не 'checkReady()' 'быть svgPanZoom_launcher()'? Однако это работает как шарм. Благодаря! – Juicy
Извините, мой плохой! :) np! – Fest7
Или вы могли бы прослушивать событие встраивания загрузки. Как в этом примере http://ariutta.github.io/svg-pan-zoom/demo/dynamic-load.html – bumbu