Показать сообщение отдельно
  #1 (permalink)  
Старый 28.11.2016, 00:22
Новичок на форуме
Отправить личное сообщение для kossr Посмотреть профиль Найти все сообщения от kossr
 
Регистрация: 28.11.2016
Сообщений: 3

выбор элемента по id из нескольких объектов одного класса
Доброго времени суток.
Есть задача:
много объектов одного класса (магазин), но с уникальными 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='не определен'")
Скажите пожалуйста, в каком направлении копать?
Спасибо.

Последний раз редактировалось kossr, 28.11.2016 в 00:25.
Ответить с цитированием