関数の変更後の色の変化が遅すぎるdivの値が変わる

私が経験していることを説明するのは難しいです。コードはdivタグの値を検出します。値が0より小さい場合、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 = "vote(x、y); colorChange(id)" を使ってonClickの関数を分離しようとしましたが、成功しませんでした。

私はここで何を見落としていますか?私はそれがシンプルで、私はただの脳であると感じています。

0

2 答え

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');
    }
}
1
追加された
私はそれを試みたので、私はその機能の中にこれらのスペースを持っていました。私はセミコロンなどを忘れていたに違いない。あなたは魔法のタッチを持っています。ありがとう、ロハン。
追加された 著者 Dan88,

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');
    }
}
1
追加された
私はそれを試みたので、私はその機能の中にこれらのスペースを持っていました。私はセミコロンなどを忘れていたに違いない。あなたは魔法のタッチを持っています。ありがとう、ロハン。
追加された 著者 Dan88,