JQuery: ссылки и обновления внешних переменных внутри функций - PullRequest
0 голосов
/ 25 февраля 2012

Я уже несколько дней пытаюсь:

  1. установить значение переменной "w"
  2. обновить "this.paneWidth = w;" в конструкторе каждый раз, когда окно загружается или изменяет размеры.

Проблемы, с которыми я сталкиваюсь:

  1. JQuery сначала запускает конструктор JS и возвращает значение w как undefined , я не знаю, как это исправить
  2. Я хочу иметь возможность обновлять значение конструктора каждый раз, когда окно загружается или изменяется, но до сих пор не получилось.

Пожалуйста, помогите! Спасибо!

jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);

var h,
    w,
    sliderWidth;

function resizeFrame() {
    h = $(window).height();
    w = $(window).width(); // assign value to variable
    sliderWidth = (w * 10);
    $("div.slider").css('width',sliderWidth);
    $("div.pane").css('width',w);
}

/************ JS CONSTRUCTOR ************/
function Slider(container, nav) {
    this.container = container;
    this.nav = nav;
    this.panes = this.container.find('div.pane');
    this.paneWidth = w; // referencing variable
    this.panesLength = this.panes.length;
    this.current = 0;
    console.log('pane width = ' + w);

}

1 Ответ

0 голосов
/ 25 февраля 2012

Вы можете определить глобальные переменные внутри конструктора.

function resizeFrame() {
    h = $(window).height();
    w = $(window).width(); // assign value to variable
    sliderWidth = (w * 10);
    $("div.slider").css('width',sliderWidth);
    $("div.pane").css('width',w);
}

jQuery.event.add(window, "load", resizeFrame);
jQuery.event.add(window, "resize", resizeFrame);

/************ JS CONSTRUCTOR ************/
function Slider(container, nav) {
    h = typeof(h) == 'undefined' ? null : h;
    w = typeof(w) == 'undefined' ? null : w;
    sliderWidth = typeof(sliderWidth) == 'undefined' ? null : sliderWidth;

    this.container = container;
    this.nav = nav;
    //this.panes = this.container.find('div.pane');
    this.paneWidth = w; // referencing variable
    //this.panesLength = this.panes.length;
    this.current = 0;
    console.log('pane width = ' + w);

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