Запись в атрибут 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.
Спасибо