2013-02-25 3 views
0
<script> 
function showhide() { 
document.getElementById('someimage').style.visibility="hidden"; 
     } 
</script> 

На данный момент я могу скрыть изображение, однако у меня нет возможности его снова показать. Как я могу скрыть, а затем показать изображение при нажатии кнопки с помощью javascript?Скрыть, а затем показать изображение с помощью Javascript

Вот кнопка:

<body> 
<input type="button" onclick="showhide()" /> 
</body> 
+2

@Guy Может быть, OP не использует какую-то раздутая библиотеку? – PeeHaa

+0

@PeeHaa, возможно. – gmaliar

+0

Вы слышали о jQuery.toggle()? http://api.jquery.com/toggle/ решит проблему, я настоятельно предлагаю использовать ее для простых задач, таких как эти, поскольку вся реализация кода выполняется для вас. – gmaliar

ответ

1

Просто проверить, что текущее состояние, а затем действовать соответственно.

function showhide() { 
    var img = document.getElementById('someimage'); 
    if (img.style.visibility === 'hidden') { 
     // Currently hidden, make it visible 
     img.style.visibility = "visible"; 
    } else { 
     // Currently visible, make it hidden 
     img.style.visibility = "hidden"; 
    } 
} 

И быстрое примечание о JQuery для всех тех, кто предполагает его.

Для простых вещей, подобных этому, нет необходимости включать большую библиотеку манипуляций с DOM. Если вы делаете много манипуляций с DOM, как это, в более сложном приложении, тогда jQuery начинает иметь смысл включать.

Но также важно понять, что делает jQuery для вас под капотом, когда вы его используете.

0

Если вы используете JQuery, вы можете использовать метод (.toggle), который упрощает вещи много:

$('#someimage').toggle(); 

Если вы хотите, чтобы придерживаться ручной решения, я думаю ваш код на самом деле отсутствует решающий бит, который устанавливает видимость элемента на видимый. Попробуйте:

<script> 
    function showhide() { 
     var element = document.getElementById('someimage'); 
     element.style.visibility = element.style.visibility == 'visible' 
      ? 'hidden' 
      : 'visible'; 
    } 
</script> 

Cheers, Алекс

Смежные вопросы