2012-02-24 4 views
0

私は数日間しようとしてきたjqueryの:参照し、関数内の外側の変数を更新

  1. は「W」変数の値を設定し
  2. 更新「this.paneWidth =ワット; "ウィンドウがロードまたはサイズ変更されるたびに、コンストラクターで私が直面してる

問題:

  1. jQueryの最初のJSコンストラクタを実行し、未定義として「ワット」の値を返す、私はそれを修正する方法がわかりません
  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); 

} 

答えて

0

コンストラクタ内でグローバル変数を定義することができます。

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();