Ваши пользовательские элементы управления изначально пусты.
Если вы хотите, чтобы они были заполнены с самого начала, вы должны, по крайней мере, вызвать функцию showCounters
сразу после добавления элемента управления счетчиками на карту.То же самое для вашего всплывающего элемента управления.
Для последнего вы используете опцию popup
, функцию buildPopupinfo
и несколько переменных (Maps
, Markers
и popup
), которые вы не объясните /покажи как ты их назначаешь.Вероятно, проблема заключается в них.
После редактирования вопроса с новым кодом:
Хм, кажется, вы столкнулись с ошибкой IE с :empty
Псевдо-селектор CSS и динамическое заполнение элемента с помощью innerHTML
.
Кажется, что простое оборачивание вашего HTML-содержимого внешним * * * * * * * * * элементом * (например, <div>
) позволяет избежать этой ошибки:
// The "one" Element is filled with a SINGLE child (but it can have many grand children)
document.getElementById('one').innerHTML = '<div> <div>one</div> <div>one</div> </div>';
// The "two" Element is filled with 2 children nodes
// Try clicking somewhere else on the page to "reveal" it
document.getElementById('two').innerHTML = '<div>two</div><div>two</div>';
.auto-hide {
background-color: green;
border: 1px solid black;
width: 100px;
height: 40px;
}
.auto-hide:empty {
display: none;
}
<div id="one" class="auto-hide"></div>
<div id="two" class="auto-hide"></div>
Я полагаю, у вас есть похожее правило CSS для вашего всплывающего окна, следовательно, похожее поведение.
Я полностью не могу воспроизвестипроблема в Safari (11.1) с приведенным фрагментом кода или с кодом, указанным в вопросе:
https://plnkr.co/edit/YDbSFQeaUYtVBadKnnbU?p=preview