很难解释我的经历。该代码检测 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)"
,但没有成功。
我在这里忽略了什么?我觉得这很简单,我只是脑残了。
最佳答案
如果你想在 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');
}
}
关于jquery - 函数更改 div 的值后颜色变化太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14745230/