Запись в атрибут data- * и получение его с помощью jQuery .data () [duplicate]

Possible Duplicate:
jQuery .data() Not Updating DOM

У меня проблема с использованием атрибута on. Я написал небольшой набор методов для отправки вызовов API.

Разметка выглядит так:

<div data-global-id="1318" data-action="unfollow" class="action text-as-link follow-btn btn" style="text-decoration: none;">unfollow</div>

и сделайте захват события следующим образом:

$(document).on('click','.action', function(){
  var t={};
  t.args={};
  t.args.global_id=$(this).data('global-id');
  t.global_id=t.args.global_id;
  t.action=$(this).data('action');
  t.identifier=t.action + '_v2';
  alert('here is action: ' + t.action);
  api_post_v1(t);
});

Api_post_v1 правильно отправляет вызов.

Существует некоторый код для обработки обратного вызова, и он устанавливает разметку:

<div data-global-id="1318" data-action="follow" class="action text-as-link follow-btn btn" style="text-decoration: none;">follow</div>

Код для этого выглядит так:

$foo=$('.action[data-action=unfollow][data-global-id='+global_id+']');
$foo.attr('data-action','follow');

Ключевой частью является действие данных. Мне бы хотелось, чтобы вызов обработчику событий, приведенный выше, сказал, что он «следует». но он говорит, что он все еще «не подписан».

Последовательность следующая:

load page, the data-action='unfollow' click this, api call gets made and you are not following this user; the callback sets data-action='follow' click this value again and the data-action is echoed as 'unfollow' rather than 'follow'

Как я могу сказать jQuery обновить привязки этого события? Я думал, что это то, что делает $ (document) .on.

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос