Ответ 1
У вас есть свое состояние назад:
if($(".icons").is(":visible")) <-----
{
$('.icons').hide();
}
else
{
$('.icons').show();
}
У меня есть кнопка JQuery Ui (#toggleIcons), которая при нажатии, переключает div (.icons), чтобы показать некоторые значки. Я также использую JQuery Isotope и Infinitescroll для динамического добавления новых изображений. То, что я пытаюсь сделать, - это сохранить способ сохранения состояния слайда, поскольку новые изображения добавляются и обновляются. Ifinitescroll имеет функцию обратного вызова, чтобы я мог обновлять страницу и состояние значков.
//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();
}
Не работает. Любая помощь или руководство будут оценены. спасибо
У вас есть свое состояние назад:
if($(".icons").is(":visible")) <-----
{
$('.icons').hide();
}
else
{
$('.icons').show();
}
Поставьте состояние проверки script в функцию - пусть оно немного держится.
$('.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");
}
});
});
почему не просто toggle или slideToggle это?
$(".icons").toggle();
Я бы использовал :visible
if($(".icons:visible").length > 0)
//item is visible
else
//item is not visible
но если вы хотите придерживаться своего кода
if($(".icons").is(":hidden"))
должен, вероятно, читать
if($(".icons").is(":hidden").length > 0)
i делал то же самое, но для установки на основе идентификатора, а затем я нашел, что это сработало, когда я использовал это вместо
if ($(this).is(':hidden')) {
var state = "closed";
} else {
var state = "open";
}
alert($(this).attr('id') + ' is ' + state);
return false;
Думаю, я понимаю, чего ты хочешь. с некоторой кнопки, которая не имеет ничего общего с добавлением изображений, пользователи могут скрывать и показывать значки. Добавляются новые изображения с показом значков, и вы не имеете представления о обратном вызове, должны ли вы показывать значки или скрывать их, чтобы они соответствовали остальной части галереи.
//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();
}