在下面的代码中,我使用jquery更新数据模式值。该值来自服务器。
所以现在如果它是'阻止',当我点击它时,如果服务器上的一切顺利,它将是'解锁'。
它更新为“取消阻止”。我可以在Mozilla中使用开发工具看到这一点。但是当我再次点击它时,我仍然得到旧值。不是新的。
我在这里做错了什么,我该怎么做?
<span class="mod-user" data-mode="Block" data-handle="3">Block</span>
我的Jquery:
$('.mod-user').live('click', function() {
var mode = $(this).data("mode");
var userHandle = $(this).data("handle");
var handle = 'mode='+mode+'&handle='+userHandle;
if(handle){
// ajax call
$.ajax({
type: "GET",
url: "/modset/",
data: handle,
dataType: "json",
cache: false,
beforeSend: function(html) {
$('.mod-user[data-handle="'+userHandle+'"]').empty();
$('.mod-user[data-handle="'+userHandle+'"]').html('Wait..');
},
success: function(preData){
if (preData["success"] == false){
delete preData["success"];
}else if (preData["success"] == true)
{
delete preData["success"];
$(this).html('');
alert(preData['response']);
$('.mod-user[data-handle="'+userHandle+'"]').html(preData['response']);
$('.mod-user[data-handle="'+userHandle+'"]').attr('data-mode',preData['response']);
}else{
alert('Error');
}
},
});
}
return false;
});
答案 0 :(得分:0)
在这一行:
$('.mod-user[data-handle="'+userHandle+'"]').attr('data-mode',preData['response']);
你正在使用.attr()。你应该在整个过程中使用.data()。