J'ai un bouton Jquery Ui (#toggleIcons) qui permet de basculer un div (.icons) pour afficher des icônes. J'utilise également Jquery Isotope et Infinitescroll pour ajouter de nouvelles images de manière dynamique. Ce que j'essaie de faire, c'est de pouvoir conserver l'état de slideToggle au fur et à mesure que les nouvelles images sont ajoutées et mises à jour. Ifinitescroll a une fonction de rappel afin que je puisse mettre à jour la page et l'état des icônes.
//My button click function
$("#styleSwitcher #toggleIcons" ).click(function() {
$('.icons').slideToggle('slow');
//for Isotope to update the layout
$('#container').isotope('reLayout')
return false;
});
//code I am working on to put in callback to test if div is open or closed
if($(".icons").is(":hidden"))
{
$('.icons').hide();
}
else
{
$('.icons').show();
}
Ne fonctionne pas Toute aide ou orientation serait appréciée. Merci
Vous avez votre condition à l'envers:
if ($(".icons").is(":visible")) { <-----
$('.icons').hide();
} else {
$('.icons').show();
}
Mettez le script d’état de contrôle dans une fonction - laissez-le tenir un peu ..
$('.advance-view').click(function() {
$('#advance-control').slideToggle('slow', function() {
if ($('#advance-control').is(':hidden'))
{
$('.advance-view').css("background-color", "#2B509A");
}
else
{
$('.advance-view').css("background-color", "#4D6837");
}
});
});
pourquoi ne pas simplement basculer ou slideToggle it?
$(".icons").toggle();
Je voudrais utiliser :visible
if($(".icons:visible").length > 0)
//item is visible
else
//item is not visible
mais si vous voulez coller à votre code
if($(".icons").is(":hidden"))
devrait probablement lire
if($(".icons").is(":hidden").length > 0)
je faisais la même chose mais pour une configuration basée sur un identifiant, puis j'ai trouvé que cela fonctionnait quand j'ai utilisé cela
if ($(this).is(':hidden')) {
var state = "closed";
} else {
var state = "open";
}
alert($(this).attr('id') + ' is ' + state);
return false;
je pense que je comprends ce que tu veux. à partir d’un bouton qui n’a rien à voir avec l’ajout d’images, les utilisateurs peuvent masquer et afficher des icônes. De nouvelles images sont ajoutées, avec les icônes "montrant", et vous ne savez pas, lors du rappel, si vous devez afficher les icônes ou les masquer afin qu'elles correspondent au reste de la galerie.
//My button click function
$("#styleSwitcher #toggleIcons" ).click(function() {
$('.icons').slideToggle('slow');
//for Isotope to update the layout
$('#container').isotope('reLayout').data({iconStateIsHidden:$('.icons').is(":hidden")});
return false;
});
//code I am working on to put in callback to test if div is open or closed
if($("#container").data()[iconStateIsHidden])
{
// newly added images should match the rest of the gallery
$('.icons').hide();
}
else
{
// newly added images should match the rest of the gallery
$('.icons').show();
}