JS Проблема с объединением строк.

Обсуждение и помощь по вопросам взаимодействия с ВКонтакте API в IFrame-приложениях (JavaScript, PHP и т.д)
Ответить
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

JS Проблема с объединением строк.

Сообщение alexei »

Перерисовка окна.

Код: Выделить всё

         function VoteType(box, uid) {            box.removeButtons();            var action = '';            var vaction = '';            var code = 'return {"user": API.getProfiles({uids:' + $("#viewerid").val() + ',fields:"rate,has_mobile"}), "settings": API.getUserSettings(), "balance": API.getUserBalance()};';            VK.api("execute", { code: code }, function (data) {                if (data.response.user.rate < 51 || data.response.user.has_mobile == 0 || (data.response.settings & 256) == 0) {                    action = action + 'Для голосования Вы должны: ';                    if (data.response.user.rate < 51) {                        action = action + 'повысить рейтинг как минумум до 51, ';                    }                    if (data.response.user.has_mobile == 0) {                        action = action + 'привязать страницу к телефону, ';                    }                    if ((data.response.settings & 256) == 0) {                        action = action + 'добавить приложение в закладки, ';                    }                    action = action + 'затем у вас появится возможность проголосовать. ';                }                else {                    box.addButton({ label: 'Увеличить на <b>1%</b>', onClick: function () { Vote(uid,0); } });                }                 if (data.response.balance < 100) {                    vaction = '<br/><br/>Что бы повысить рейтинг на 10%, Вам надо пополнить баланс приложения.';                }                else {                    box.addButton({ label: 'Увеличить на <b>10%</b>', onClick: function () { Vote(uid,1); } });                }            });            box.addButton({ label: 'Закрыть', style: "button_no", onClick: function () { box.hide() } });            box.content('Вы можете <b>бесплатно</b> проголосовать звезду. И ее рейтинг увеличится в приложении на <b>1%.</b> Однако голосовать можно один раз за одну звезду.<br/>В целях защиты от спама вводятся ограничения на голосования, пользователь который голосует должен:<br/>1) Иметь рейтинг не меньше <b>51%</b> ВКонтакте.<br/>2) Привязать страницу к телефону.<br/>3) Установить приложение и <a href="javascript:AddFave();" >Добавить в закладки</a>.<br/><br/>Также Вы можете повысить рейтинг звезды на <b>10% за один голос.</b><br/><br/>' + action + vaction);        } 
Если не удовлетворяет условию (data.response.user.rate < 51 || data.response.user.has_mobile == 0 || (data.response.settings & 256) == 0), то должна добавляться строка к box.content. Но переменные action, vaction не изменяются. Скорее всего проблема с лок и глоб переменными, в C# подобное работает. Как реализовать?
Аватара пользователя
Александр
Создатель сайта
Создатель сайта
Сообщения: 4574
Зарегистрирован: 27 сен 2009, 16:45

Re: JS Проблема с объединением строк.

Сообщение Александр »

Уверен, что все условия выполняются?
Попробуй максимально упростить код для отладки. Убери то, что не участвует в нужной части и замени все data.response... - на простые значения.
Аватара пользователя
alexei
Разработчик
Разработчик
Сообщения: 836
Зарегистрирован: 21 янв 2010, 19:44

Re: JS Проблема с объединением строк.

Сообщение alexei »

Разобрался. Все перенес в function (data). Теперь работает.
Ответить