Я пытаюсь реализовать кнопку JqueryUI под названием избранное (id = "# Favorites") для миниатюр в галерее изображений. Кнопка переключает отображение значка избранного (span class = "fav"). Я использую Изотоп для макета миниатюры, которая позволяет сортировать и фильтровать. То, что я пытаюсь сделать, это добавить класс «избранных» в Isotope DIV (class = «item»), чтобы разрешить фильтрацию изображений при нажатии на значок «fav» для отдельного эскиза. Я также хочу, чтобы мой значок избранного прикреплялся к каждому большому пальцу, который отмечен как избранный, и не переключался после выбора при нажатии кнопки JqueryUi.
Пока я могу сделать значки видимыми и добавить класс в DIV изотопа, за исключением того, что он добавляет класс ко всем DIV, а все избранные значки остаются видимыми. Мне нужно, чтобы он только изменял конкретный DIV и любимый значок этого конкретного эскиза.
Я все еще изучаю jquery, и мой код находится в зачаточном состоянии и может быть совершенно неверным для этой цели. Буду признателен за любую помощь или направление!
Вот ссылка: Галерея
Нажатие на кнопку «Fav» переключает значки
HTML:
<div class="item">
<a href="image.jpg" title="Image">
<img src="image.jpg" width="80" height="80" alt="Image" />
</a>
<span class="fav ui-icon ui-icon-heart"></span>
<div class="title">Image 1</div>
</div>
Код кнопки:
// JQuery Ui button setup
$( "#favorites" ).button({
label: "Fav",
icons: { primary: "ui-icon-heart" }
});
// initially hides the icon
$('span.fav').hide();
//click function to toggle icon under thumbs
$("#favorites" ).click(function() {
$('span.fav').slideToggle('slow');
return false;
});
// my attempt at adding a class 'sticky' to icon to make it stay visible as well as add class '.favorites' to '.item' div to set it up for filtering
$("span.fav" ).live('click', function() {
$('.fav').addClass("sticky");
$('.fav').each(function ()
{
$(this).removeClass("fav");
});
$('.item').each(function ()
{
$(this).addClass("favorites");
});
return false;
});
Я использовал .live, потому что Isotope вносит динамические изменения в код, но это может быть не правильно.