Переменная область видимости Javascript - PullRequest
1 голос
/ 10 апреля 2011

В следующем фрагменте кода я объявил переменную "id" в функции submit. Я пытаюсь присвоить ему значение во вложенной функции, но оно не входит в область видимости, и я не знаю почему.

$(document).ready(function() {
if (typeof(localStorage) == 'undefined' ) {
    alert('Your browser does not support HTML5 localStorage. Try upgrading.');
} 
else {

    $("#logForm").submit(function(){
        var id;

        chrome.bookmarks.getRecent(1, function(mostrecent) {
            getLastId(mostrecent);
            });

        function getLastId(mostrecent) {
            mostrecent.forEach(function(mostrecent) {
                lastId = mostrecent.id;
                alert(lastId + ' was last id');
                id = lastId;
                })
            }
        alert(id + ' outside function');

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

1 Ответ

2 голосов
/ 10 апреля 2011

Это должно сделать это:

$("#logForm").submit(function() {

    var id;

    chrome.bookmarks.getRecent(1, function(arr) {
        id = arr.pop().id;
    });

    // do stuff with id

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