2012-05-01 3 views
16

Каков наилучший способ показать div при нажатии на кнопку, а затем скрыть его кнопкой закрытия?видимость: видимая/скрытая div

Мой Jquery код выглядит следующим образом:

$(".imageIcon").click(function(){ 
$('.imageShowWrapper').css("visibility", 'visible'); 
}); 
$(".imageShowWrapper").click(function(){ 
$('.imageShowWrapper').css("visibility", 'hidden'); 
}); 

кроме проблема, у меня он автоматически закрывается без каких-либо щелчков мыши. Он загружает все в порядке, отображает около 1/2 секунды, а затем закрывается. Есть идеи?

ответ

25

Вы можете использовать show и hide методы:

$(".imageIcon").click(function() { 
    $('.imageShowWrapper').show(); 
}); 

$(".imageShowWrapper").click(function() { 
    $(this).hide(); 
}); 
+0

эй спасибо за ваш ответ, я хочу, чтобы div был спрятан первым, мне нужно будет использовать ту же функцию hide() или я могу использовать свойство visibilty CSS –

+2

@Scott Робертс, пожалуйста, вы можете скрыть div вне обработчика событий, скрыть наборы 'display: none' к элементу. – undefined

+0

Хмм, может быть, я не реализовал его правильно. Я все еще многому учусь этому материалу. В моем файле CSS я разместил 'display: none' в свойствах imageShowWrapper, но теперь JQuery не влияет на div –

0

Вы хотите получить более плавный переход, используя методы выцветанию:

var imageIcon = $(".imageIcon"), 
    imageShowWrapper = $(".imageShowWrapper"); 

imageIcon.on("click", function(){ 
    imageShowWrapper.stop().fadeIn(); 
}); 

imageShowWrapper.on("click", function(){ 
    $(this).stop().fadeOut(); 
}); 

Демо: http://jsbin.com/uhapom/edit#javascript,html,live

0
$(".imageIcon, .imageShowWrapper").click(function(){ 
    $('.imageShowWrapper').toggle(); 
}); 
2

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

$(".imageIcon, .imageShowWrapper").click(function() { 
    $(".imageShowWrapper").toggle($(this).hasClass('imageIcon'));  
}); 

Вы также можете использовать fadeToggle и slideToggle

5

По вашему требованию, я считаю, что вам нужно, это так просто, как это: http://jsfiddle.net/linmic/6Yadu/

Однако, используя видимость отличается от использования шоу/скрыть функцию, gory подробнее: What is the difference between visibility:hidden and display:none?

+0

, это действительно то, что я хочу, и в значительной степени то, что мой исходный код, его просто не работает по какой-то причине. Спасибо за ответ –

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