2010-09-02 32 views
2

J'ai créé ce script qui vous permet de naviguer dans plusieurs divs avec jQuery, mais je veux faire un changement de CSS au parent si la 6ème div est affichée et en utilisant .is (": visible") ne m'a pas donné de chance.Problème de ciblage visible jQuery

$(document).ready(function() { 
    /* Set the frame to #sf1 */ 
    $('#sf2, #sf3, #sf4, #sf5, #sf6').hide(); 
    /* Slide Animation for Next Slides */ 
    $('.nextbutton').click(function() { 
     $(this).parents('li').fadeOut(300); 
     $(this).parents('li').next().fadeIn(300); 
     if ($('#sf6').is(":visible") == "true") { 
     alert('that just happened'); 
     $('#stepForm').css('height', 'auto !important'); 
     } 
    }); 
    /* Slide Animation for Previous Slides */ 
    $('.prevbutton').click(function() { 
     $(this).parents('li').prev().fadeIn(300); 
     $(this).parents('li').fadeOut(300); 
    }); 
}); 

Répondre

2

Vous devez changer

if ($('#sf6').is(":visible") == "true") { 

juste

if ($('#sf6').is(":visible")) { 
+0

Merci monsieur, ça l'a corrigé – stephenway

0

Pourquoi ne pas tester les propriétés CSS qui rendraient visible ...

var dis = $('#sf6').css('display'); 
if (dis == 'visible' || dis == 'block'){ 
    // do something 
} 
0

Vous pouvez capturer tout dans un sélecteur en testant la longueur prop erty comme ceci:

if ($('#sf6:visible').length) {... 

Devrait être un peu plus rapide de cette façon. Je pensais juste que je le lancerais là-bas. : o)

+0

Point de vue intéressant, je vais lui donner un spin merci – stephenway