Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   поочередное сохранение (https://javascript.ru/forum/dom-window/64717-poocherednoe-sokhranenie.html)

кирикала 31.08.2016 14:51

поочередное сохранение
 
есть две переменные localStorage перваая count0 вторая count1
как сохранять в них данные поочередно первый клик в count0 второй в count1 третий пересохранить count0 четвертый пересохранить count1 и т.д.
у мя на dive стоит onClick='give(this.id);'
вот фукция ниже не работает =(

function give(val) {
switch (true) {
   case (val=='boxA'):
if (i == 1) {
localStorage.setItem('count0', 'boxA'); var i = 0;
} else {
localStorage.setItem('count1', 'boxA'); var i = 1;
}
   break;
   case (val=='boxB'):
if (i == 1) {
localStorage.setItem('count0', 'boxB'); var i = 0;
} else {
localStorage.setItem('count1', 'boxB'); var i = 1;
}
   break;
   case (val=='boxC'):
if (i == 1) {
localStorage.setItem('count0', 'boxC'); var i = 0;
} else {
localStorage.setItem('count1', 'boxC'); var i = 1;
}
   break; 
}


что не так? как правильно задать эту переменную которая выступает мигалкой по типу или значение 1 или 0 ? или оно вообще тут не нужна? как тогда организовать проверку условия когда сохранять в первую переменную когда во вторую?

Strongman 31.08.2016 14:59

Что-то не так по-моему switch пишется:
switch(val) {
   case 'boxA':

Переделай все кейсы и выкладывай тут последнюю версию:).
Насчет кликов я бы сделал так. Заведи счетчик кликов.
var Counter=false;/*bool value*/
Object.onClick = function()
{
if(Counter)
{/*0 или любое четное нажатие*/}
else
{/*1 или любое нечетное нажатие*/}
Counter != Counter;/*Инвертирование значения Counter*/
}

ksa 31.08.2016 15:00

Цитата:

Сообщение от кирикала
как правильно задать эту переменную которая выступает мигалкой по типу или значение 1 или 0 ?

Такую информацию можно хранить в том же localStorage...

кирикала 31.08.2016 15:22

ksa, ну с этим более понятно, и да действительно норм помогло спс =)
strongman, чето в данной ситуации счетчик оказался более сложным имхо хз хз

ksa 31.08.2016 15:26

При использовании строковых констант с циферкой удобнее вести инкремент цифры и остаток от деления.
Т.о. можно обойтись вовсе без условия "куда писать". ;)

Strongman 31.08.2016 15:51

Так у Вас уже сделан этот механизм, про который я говорил. Только не нужно var писать везде(это я про строки 5, 7, 12, 14, 19, 21). Просто зведите глобальную переменную i.
Цитата:

Сообщение от кирикала
strongman, чето в данной ситуации счетчик оказался более сложным имхо хз хз

- а что тут сложного, ничего сложного нет. Я вообще хотел сначала сделать так:
var Count = 0;
Object.onClick = function()
{
if(Count%2 == 0)
{/*0 или любое четное нажатие*/}
else
{/*1 или любое нечетное нажатие*/}
}

Ну или как-то так, я думаю принцип ясен.

кирикала 31.08.2016 15:52

а еще вопрос а как убрать отображение Undefined на странице?? ну еси переменной нету то понятно зачем об етом писать) некий мб аналог ПХПшного error_reporting(0);

кирикала 31.08.2016 15:53

тяжко понимать JS после PHP ппц(

ksa 31.08.2016 15:54

Цитата:

Сообщение от кирикала
как убрать отображение Undefined на странице?

Пример такого "отображения" приведи...

кирикала 31.08.2016 15:55

или тут надо постоянно проверять существует если да => тогда выводим а если нет то пусто


Часовой пояс GMT +3, время: 18:38.