как скрыть / показать элемент DOM в закрытии Google - PullRequest
9 голосов
/ 23 декабря 2009

domA.style.display = "нет"; domA.style.display = "block;

Я не смог найти такие функции в библиотеке, но, думаю, они где-то должны быть.

Ответы [ 3 ]

15 голосов
/ 30 декабря 2009
<html>
<head>
<script src="http://closure-library.googlecode.com/svn/trunk/closure/goog/base.js" type="text/javascript"></script>
<script language="JavaScript">
    goog.require('goog.style');
</script>
</head>
<body>
   <div id="myElement">test</div>
</body>
</html>
<script> 
    goog.style.setStyle(goog.dom.$("myElement"), "display", "none");
    // or
    goog.style.showElement(goog.dom.$("myElement"), false);
</script>
5 голосов
/ 24 апреля 2013

Другой вариант -

var elA = goog.dom.getElementByClass ('sdf');

goog.style.showElement (elA, true) // показать элемент

goog.style.showElement (elA, false) // скрыть элемент

4 голосов
/ 14 декабря 2013

Согласно более свежей официальной документации здесь , для setStyle рекомендуется следующее:

Устанавливает значение стиля для элемента. ... По возможности используйте нативные API: elem.style.propertyKey = 'value' или (если стираются старые стили хорошо) elem.style.cssText = 'property1: value1; свойство2: значение2 '.

Это предполагает goog.dom.getElement('myElement').style.display = 'block';, как в вашем вопросе.

Также полезно отметить, что если вы используете showElement, установка второго аргумента в true вернет элемент в default style. Как говорится:

True для отображения элемента в его стиле по умолчанию, false для отключения рендеринг элемента.

Что это означает, однако, что если вы установите display: none в своем CSS, настройка true все равно не будет отображать элемент, потому что стиль CSS по умолчанию - скрывать элемент !! Это отличается от, скажем, с JQuery.

Для переключения вы можете сделать это:

var el_style = goog.dom.getElement('myElement').style;
el_style.display = (el_style.display === "none" ? "block" : "none");
...