Изменение цвета слишком медленно после изменения значения функции div

Трудно объяснить, что я испытываю. Код определяет значение тега 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
nl ja de

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, источник
Верстка сайтов HTML/CSS/JS/PHP
Верстка сайтов HTML/CSS/JS/PHP
3 439 участник(ов)

Правила группы: напишите !rules в чате. Группа Вк: vk.com/web_structure Freelancer: @web_fl Веб Дизайн: @dev_design Маркетолог: @topmarkening Автор: @M_Boroda

CSS — русскоговорящее сообщество
CSS — русскоговорящее сообщество
1 502 участник(ов)

Сообщество любителей CSS Возникли проблемы с CSS? – пиши сюда, обсудим и предложим самое лучшее решение Работа: @css_ru_jobs Правила: https://teletype.in/@css_ru/r1EWtQ2w7 Приходите в наши чаты @javascript_ru и @frontend_ru Флуд: @css_flood

Чат — Типичный Верстальщик
Чат — Типичный Верстальщик
1 080 участник(ов)

Основной канал: @tpverstak Обратная связь: @annblok Все ссылки на соц.сети проекта: http://taplink.cc/tpverstak ПРАВИЛА ЧАТА — https://teletype.in/@annblok/BygPgC3E7

Веб-Технологи: UI/UX, Вёрстка, Фронтенд
Веб-Технологи: UI/UX, Вёрстка, Фронтенд
167 участник(ов)

Всё про веб-дизайн и вёрстку. А также: HTML, CSS, флекс и бутстрапы, шаблонизаторы, препроцессоры, методологии, аглифаеры, улучшаторы и обфускаторы. Обсуждаем темы юзабилити, устраиваем А/В тесты лендингов, и проводим аудит.

DTP :: @DTPublish
DTP :: @DTPublish
147 участник(ов)

Обсуждаемые темы: полиграфия, препресс, верстка, дизайн, иллюстрации, скрипты, плагины. Канал - @DTPublishing

css_jobs
css_jobs
26 участник(ов)

Чат для вопросов по css и html: @css_ru Флуд: @css_flood Канал с вакансиями и резюме: @css_jobs_feed

css_флуд
css_флуд
10 участник(ов)