jquery - использовать переменную вне функции - PullRequest
5 голосов
/ 13 апреля 2011

Как я могу использовать переменную вне функции, где она была объявлена?

$(function() {
    function init() {
        var bwr_w = $(window).width();
    }
    init();
    $('#button').click(function() {
        alert('The Browser Height is' + bwr_w);
    });
});

Если я нажимаю на кнопку, я получаю эту ошибку:

bwr_w не определен

Ответы [ 3 ]

15 голосов
/ 13 апреля 2011

Просто объявите эту переменную в области видимости конструктора:

$(function() {
    var bwr_w = null;

    function init() {
        bwr_w = $(window).width();
    }

    init();

    $('#button').click(function() {
        alert('The Browser Height is' + bwr_w);
    });
});
5 голосов
/ 13 апреля 2011

попробуйте

$(function() {
  var bwr_w = 0;
  function init() {
    bwr_w = $(window).width();
  }
  init();
  $('#button').click(function() {
    alert('The Browser Height is' + bwr_w);
  });
});
1 голос
/ 13 апреля 2011

Если вы объявляете переменную вне функции, а затем присваиваете ей значение внутри функции, она должна быть доступна в другом месте. Пока вы уверены, что будет назначено значение. Если вы не уверены, вы можете назначить значение по умолчанию:

$(function() {

        var bwr_w; // or 'var bwr_w = default_value;'

    function init() {
        bwr_w = $(window).width();
    }
    init();
    $('#button').click(function() {
        alert('The Browser Height is' + bwr_w);
    });
});
...