С методом .data() у меня тоже были сложности, по этому теперь я строго работаю с .attr() - тут проблем не было да и смысла когда нужно придерживаться .data() я не уловил.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
var id = $(this).attr("data-id");
возвращает одно и то же значение.