Проблемы с вызовом функции JavaScript - PullRequest
0 голосов
/ 01 февраля 2012

Я использую индикатор выполнения YUI, но у меня есть некоторые проблемы с ним.

Обычно, чтобы изменить значение индикатора выполнения, можно использовать: progressBar.set('value', 10000); Где value - это то, что я пытаюсь изменить, а 10000 - это то, что я хочу изменить. В консоли это возвращает true

Это отлично работает. Но я хочу передать переменную в качестве значения: progressBar.set('value', total); Но это не работает для меня, и консоль сообщает false

Вот код:

Это создает и отображает панель:

var progressBar = new YAHOO.widget.ProgressBar({
                direction: "ttd",
                height: "75px",
                width: "750px",
                anim: true,
                minValue: 0,
                maxValue: 85000,
                value: 35000
            }).render("bar");

            var anim = progressBar.get('anim');
            anim.duration = 3;
            anim.method = YAHOO.util.Easing.bounceBoth;

И это ajax-запрос, чтобы получить значение, которое я хотел бы установить для бара:

var itemTotal, mITotal, donationTotal, total;

            function showHint()
            {
            var xmlhttp;
            if (window.XMLHttpRequest)
              {// code for IE7+, Firefox, Chrome, Opera, Safari
              xmlhttp=new XMLHttpRequest();
              }
            else
              {// code for IE6, IE5
              xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
              }
            xmlhttp.onreadystatechange=function()
              {
              if (xmlhttp.readyState==4 && xmlhttp.status==200)
                {
                var myString = new String(xmlhttp.responseText); 
                var myArray = myString.split(',');
                itemTotal = myArray[0];
                mITotal = myArray[1];
                donationTotal = myArray[2];
                total = myArray[3];

                progressBar.set('value', total);
                alert(total);
                }
              }
            xmlhttp.open("GET","goal_ajax.php",true);
            xmlhttp.send();
            }

Есть идеи?

1 Ответ

1 голос
/ 01 февраля 2012

Это:

                var myArray = myString.split(',');
                ...
                total = myArray[3];

не устанавливает total на 10000 (число), но на '10000' (строка). Держу пари, что если вы попробуете

                progressBar.set('value', '10000');

вы увидите ту же проблему. Чтобы это исправить, измените это:

                total = myArray[3];

к этому:

                total = +myArray[3];

, который преобразует '10000' в 10000.

(Отказ от ответственности: не проверял. Это всего лишь предположение, но, как угадать, я довольно уверен в этом.)

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