Escrevendo para um atributo data- * e obtendo-o com jQuery .data () [duplicado]

Duplicata Possível:
jQuery .data () não atualizando o DOM

Estou com um problema ao usar o atributo on. Eu escrevi um pequeno conjunto de métodos para enviar chamadas de API.

A marcação é assim:

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

e ter uma captura de eventos como esta:

$(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);
});

O api_post_v1 envia a chamada corretamente.

Há algum código para lidar com o retorno de chamada e define a marcação para:

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

O código para isso é como:

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

A peça chave é a ação de dados. Eu gostaria que a chamada para o manipulador de eventos acima dissesse que é 'follow', mas diz que ainda é 'unfollow'.

A sequência é a seguinte:

carregar página, a ação de dados = 'unfollow'clique isso, a chamada da API é feita e você não está seguindo esse usuário; o retorno de chamada define data-action = 'follow'clique novamente nesse valor e a ação de dados será ecoada como "unfollow" em vez de "follow"

Como eu poderia dizer ao jQuery para atualizar as ligações deste evento? Eu pensei que isso era o que $ (documento) faz.

THX

questionAnswers(1)

yourAnswerToTheQuestion