很难解释我的体验。代码检测div标签的值。如果该值低于0,0或高于零;它变成了不同的颜色。它正在做的是它是滞后的(-1仍然是灰色,0将是绿色或红色但不是灰色,1将是灰色)
function vote(vote_id, votetype) {
$.post('vote.php', {
id: vote_id,
type: votetype
},
function (output) {
$('#vote' + vote_id).html(output).show();
});
colorChange(vote_id);
}
function colorChange(vote_id) {
var voteTotal = $('#vote' + vote_id);
if (voteTotal.text() < 0) {
voteTotal.css('color', '#800000');
} else if (voteTotal.text() == 0) {
voteTotal.css('color', '#333333');
} else if (voteTotal.text() > 0) {
voteTotal.css('color', '#32cd32');
} else {
voteTotal.css('color', '#333333');
}
}
vote.php根据投票类型更新数据库,然后将数据库中的新值返回给函数。
在功能完全关闭之前,函数似乎无法完成并更新该值。我尝试在onClick中分离我正在使用onClick="vote(x,y);colorChange(id)"
的功能,但没有成功。
我在这里俯瞰什么?我觉得这很简单,我只是脑力不足。
答案 0 :(得分:1)
如果您希望在vote
年div颜色更改之后,那么您应该调用函数colorChange
,如
function vote(vote_id, votetype) {
$.post('vote.php', {id: vote_id, type: votetype },
function(output) {
$('#vote' + vote_id).html(output).show();
colorChange(vote_id);
});
}
colorChange
的代码可以更改为
function colorChange(vote_id) {
var voteTotal = $('#vote' + vote_id);
if (voteTotal.text() < 0) {
voteTotal.css('color', '#800000');
}
else if (voteTotal.text() > 0) {
voteTotal.css('color', '#32cd32');
}
else {
voteTotal.css('color', '#333333');
}
}