我总是用这样的东西:
$("a.button").click(function() {
data = ...;
url = ...;
$.post(url, data, function() {
$(this).toggleClass('active');
});
});
问题是当用户连接缓慢并单击该按钮时,它似乎没有做任何事情,因为active
一旦请求完成,该按钮将改变自己的状态(添加类)。当然,我可以通过在加载请求时添加微调器来“修复”这种行为。
现在看看这个:
$("a.button").click(function() {
$(this).toggleClass('active');
data = ...;
url = ...;
$.post(url, data, function() {
// if request is successful do nothing
// else, if there's an error: $(this).toggleClass('active)
});
});
换句话说,当按下按钮时,我会立即更改按钮状态,然后检查成功/错误。这是一个好方法吗?你在想什么?还有其他方法吗?