А $(this) что, не катит? Он как раз и выбирает то на что кликнули.
id не определен потому что передавать объект нужно а не строку как в строке 7 и 25
data: {id: $id.attr('id')},
И здесь финкцию без скобок прописать $('span.fav').on('click', addFav());