Дисплей: нет; отображает "нет" в браузере
Этот пример jsFiddle работает в Google Chrome, но в Internet Explorer, после нажатия на значок закрытия браузер удаляет всплывающий элемент, но приводит к тому, что в окне браузера отображается текст "none". Пожалуйста, объясните, как я могу решить эту проблему.
HTML:
<div id="popup">
<!-- Close popup link -->
<a href="javascript:document.getElementById('popup').style.display='none';">X</a>
</div>
Ответы
Ответ 1
Использовать onclick для обработчика событий вместо href http://jsfiddle.net/AE2X3/4/
<div id="popup">
<a href="#" onclick="document.getElementById('popup').style.display='none';return false;" id="close_popup"></a>
<p>This is a pop-up.</p>
</div>
Ответ 2
Я думаю, что происходит то, что присваивание возвращает его результат, и браузер показывает это. Если вы добавите void(0)
в конец вашего JavaScript, он не будет отображаться.
Позвольте мне добавить, что amit_g answer является более правильным, чем мой. Он правильно указывает, что такое поведение принадлежит обработчику OnClick
, а не атрибуту href
.
Ответ 3
Это работает:
<div id="popup">
<a href="javascript:void(0);" onclick="this.parentElement.style.display='none';" id="close_popup"></a>
<p>This is a pop-up.</p>
</div>
Демо