HTMLElement.style
возвращает встроенный стиль (что указано в атрибуте style
).
Вы можете использовать Window.getComputedStyle()
так:
var map = document.getElementById('map'),
btn = document.getElementById("myButton1");
function change() {
if (btn.value == "Show") btn.value = "Hide";
else btn.value = "Show";
}
function displayMap() {
var style = window.getComputedStyle(map);
if (style.display == "none") {
map.style.display = "block";
initialize();
} else {
map.style.display = "none";
console.log('hiding');
}
}
// Placeholder
function initialize() {
console.log('showing map');
}
#map {
display: none;
width: 100%;
height: 300px;
background:#333;
}
<input onclick='change(), displayMap()' type='button' value='Show' id='myButton1' />
<div id="map"></div>
Вышеописанный метод подходит, но я бы выбрал более согласованный метод, такой как класс CSS, и я бы в первую очередь инициализировал карту, потому чтоспособ, которым вы реализовали, исчерпывает initialize()