【发布时间】:2018-09-04 13:32:52
【问题描述】:
我正在尝试在成功响应中将('.follow') 元素的data-action 属性更新为unfollow,但它没有更新。
我做错了什么?
$('.follow').click(function() {
var id = $(this).data("id");
var action = $(this).data("action");
var url = '/action/' + action;
$.ajax({
url: url,
headers: {
'TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data: {
id: id
},
type: "POST",
success: function(v) {
if (v.response == "OK") {
$(this).data('action', 'unfollow');
}
if (v.response == "E") {
alert('there was an error');
}
}
});
});
编辑
添加有问题的元素是一个按钮的事实,因为下面提供的解决方案仍然不起作用。
<button class="follow" data-id="<?php echo $profile->id; ?>" data-action="follow">FOLLOW</button>
第二次编辑
只是想更新这个问题,以防其他人发现自己处于类似情况。
事实证明,Nir Tzezana 接受的答案是绝对正确的。我无法让它工作的原因是 Firefox 有问题。这不是第一次发生这样的事情,但我总是忘记这可能是一个问题。
所以,故事的寓意.. 如果您使用的是 Firefox,并且您确信您的代码可以正常工作 - 但它似乎无法正常工作 - 退出 Firefox 并重新启动它(尤其是如果您有浏览器长时间打开)。您的代码可能一直在工作。
【问题讨论】:
-
但它没有更新 -- 你如何确保它不起作用?
-
1) 因为它没有更新元素和 2) 因为当我再次单击该按钮时,它会将关注操作发送到服务器,而不是取消关注操作。
标签: javascript jquery ajax jquery-selectors