2012-05-01 19 views
16

Jaki jest najlepszy sposób pokazania elementu div po kliknięciu przycisku, a następnie ukrycie go za pomocą przycisku zamykania?widoczność: widoczny/ukryty div

Mój kod jQuery jest w następujący sposób:

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

wyjątkiem problemu Mam to zamyka się automatycznie bez żadnych kliknięć. Ładuje wszystko dobrze, wyświetla przez około 1/2 sekundy, a następnie zamyka. Jakieś pomysły?

Odpowiedz

25

Można użyć show i hide metody:

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

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

hej dzięki za odpowiedź, chcę, aby div został ukryty jako pierwszy, czy potrzebowałbym użyć tej samej funkcji hide() czy mogę po prostu użyć właściwości widoczności CSS –

+2

@Scotta Robertson, jesteś mile widziany, możesz ukryć div poza obsługą zdarzenia, ukryć zestaw 'display: none' do elementu. – undefined

+0

hmm, może nie zaimplementowałem tego poprawnie, wciąż uczę się dużo tego. W moim pliku CSS i umieszczone 'wyświetlania: none' we właściwościach imageShowWrapper ale teraz Jquery przyzwyczajenie wpływa div –

0

co można uzyskać płynniejsze przejścia przy użyciu metod blaknięcie:

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

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

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

Demo: http://jsbin.com/uhapom/edit#javascript,html,live

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

Inną opcją :

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

Można również użyć fadeToggle i slideToggle

Powiązane problemy