可能重复:
jQuery .data() 未更新 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');
关键部分是数据操作。我想调用上面的事件处理程序说它是“关注”,但它说它仍然是“取消关注”。
顺序如下:
- 加载页面,data-action='unfollow'
- 单击此按钮,进行 api 调用并且您没有关注此用户;回调设置 data-action='follow'
- 再次单击此值,数据操作将回显为“取消关注”而不是“关注”
我如何告诉 jQuery 刷新此事件的绑定?我认为这就是 $(document).on 所做的。
谢谢