Доброго времени суток.
Есть задача:
много объектов одного класса (магазин), но с уникальными id.
нужно по нажатию на объект отправлять ajax запрос (это работает) и изменять текст в объекте.
function addFav(){
var $id = $(this);
console.log('adding to favs id: '+ $id.attr('id'));
$.ajax({
type:"post",
url: "/fav_add.php",
data: "id="+$id.attr('id'),
success: function(){
$('.fav')
.addClass('active')
.attr('title','Добавить в избранное')
.unbind('click')
.bind('click', removeFav)
.text('Добавить в избранное');
}
});
}
function removeFav(){
var id = $(this);
console.log('removing from favs id: '+ id.attr('id'));
$.ajax({
type:"post",
url: "/fav_del.php",
data: "id="+id.attr('id'),
success: function(){
$('.fav')
.removeClass('active')
.attr('title','Удалить из избранного')
.unbind('click')
.bind('click', addFav)
.text('Удалить из избранного');
}
});
}
$('span.fav').on('click', addFav());
понятно, что этот селектор выбирает все объекты класса, но мне нужно менять надпись в конкретно нажатом
Введенные в консоли селекторы $('span#'+9) , и $('.fav[id="9"]') работают, но я не знаю, как его реализовать в коде - код $('.fav[id="'+ $id.attr('id') +'"]') не работает.
итак, вопросы:
1. какой нужен селектор для выбора одного объекта (на который нажали)?
2. даже селектор, выбирающий все, не срабатывает на первое нажатие (ajax передает data: "id='не определен'")
Скажите пожалуйста, в каком направлении копать?
Спасибо.