Jquery / Javascript: плагин локального хранилища не позволяет мне хранить индекс, почему?Что я делаю неправильно? - PullRequest
0 голосов
/ 15 марта 2011

ПРИМЕЧАНИЕ: Я только что понял, что это заставит его работать: $.Storage.set("whichp", ""+myindex), добавление кавычек, затем плюс, затем переменная. почему это не работает только с такой переменной: $.Storage.set("whichp", myindex)? Если я даже удаляю кавычки и оставляю плюс, вот так: $.Storage.set("whichp", myindex) это тоже не сработает.

Я использую плагин Jquery , который хранит локальные данные, если у вашего браузера есть такая возможность. Если нет, он хранит куки вместо этого. На сайте разработчиков он говорит:

Имена и значения должны быть строками. Некоторые браузеры могут принимать не-строки значения, но не все делают.

Формат для установки данных:

$.Storage.set("name", "value") 

и для получения значения:

$.Storage.get("name") 

Я думал, что смогу установить переменную, а затем вставить эту переменную в качестве значения, например:

var myindex = $(this).index()
$.Storage.set("whichp",  mystring)

но это не работает ... если бы я сделал это, хотя:

var mynote = "this is a test"
$.Storage.set("whichp",  mynote)

тогда это будет работать .... Я не понимаю, почему это не позволит мне поместить индекс в хранилище ...

мой полный код для этого события клика ниже.

$('P').click(function () {
        var myindex = $(this).index()
    if (!$.Storage.get("whichp")) {
        $.Storage.set("whichp",  myindex)           
    } else {
        alert($.Storage.get("whichp"))  
    }
});

Плагин Jquery

Он просто не устанавливается в локальном хранилище / cookie, он просто пуст.

1 Ответ

2 голосов
/ 15 марта 2011

РЕДАКТИРОВАТЬ: Поскольку вы выяснили ошибку и то, как вы ее описали, я могу только предположить, что это происходит, потому что плагин Storage не будет хранить число.в основном myindex - это число, когда оно возвращается вызовом

$(this).index()

.Однако выполнение "" + myindex превращает его в строку.Чтобы проверить теорию, попробуйте это

 $.Storage.set("whichp",  myindex.toString()) 

Вы пытаетесь сохранить переменную mystring, которая нигде не определена.Разве вы не должны хранить переменную myindex?

Это должно работать

$('P').click(function () {
        var myindex = $(this).index()
    if (!$.Storage.get("whichp")) {
        $.Storage.set("whichp",  myindex)          
    } else {
        alert($.Storage.get("whichp"))  
    }
});
...