Как заставить кнопку делать 2 вещи в зависимости от логического значения с помощью JavaScript - PullRequest
0 голосов
/ 07 февраля 2019

Я пытаюсь создать функцию опроса на моем сайте.Я хочу, чтобы количество увеличилось на 1, если пользователь еще не проголосовал, когда они нажимали кнопку, и уменьшилось на 1, если пользователь уже проголосовало, когда они нажали кнопку.Прямо сейчас это уходит до бесконечности и никогда не идет -1.

Если я поменяю if (voted) на if (! Voted), возникает противоположная проблема, и при каждом щелчке происходит просто -1.

var voted = new Boolean(false);

        $(document).ready(function () {
            $("#container div button").click(function () {
                if (voted) {
                    $(this).parent().animate({
                        width: '+=100px'
                    }, 500);

                    $(this).prev().html(parseInt($(this).prev().html()) + 1)
                    voted === true;

                } else {
                    $(this).parent().animate({
                        width: '-=100px'
                    }, 500);
                    $(this).prev().html(parseInt($(this).prev().html()) - 1)
                    voted === false;

                }

            });
        });

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

voted === true и voted === false - сравнения.

Вы должны использовать voted = true и voted = false (которые являются правильными назначениями)

0 голосов
/ 07 февраля 2019

voted === true должно быть voted = true

и

voted === false должно быть voted = false

вам нужно переназначить переменную voted вместо проверкина равенство.

Посмотрите, как оператор присваивания и оператор равенства работают в js

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...