2016-12-18 19 views
0

ウィンドウのサイズを変更したときにdivのサイズを変更しようとしています。次のコードでは、 "this.fullScreenは関数ではありません"というメッセージが表示されます。ウィンドウのサイズを変更しても問題はありませんが、ウィンドウのサイズは明らかに変更されません。私はこれを間違った方法で考えていますか? fullScreenResizeサイズ変更時にjqueryウィンドウのサイズ変更エラーが発生する

var PE = {}; 

PE.functions = { 
    fullScreen: function fullScreen() { 
    var fullScreen = $('.full-screen'), 
     navbarHeight = $('.navbar').height(), 
     windowHeight = $(window).height(), 
     windowWidth = $(window).width(); 

    fullScreen.css({ 
     width: windowWidth, 
     height: windowHeight - navbarHeight 
    }); 
    }, 

    fullScreenResize: function screenResize() { 
    $(window).resize(function(){ 
     this.fullScreen(); 
    }); 
    } 
}; 

$(document).ready(function() { 
    PE.functions.fullScreenResize() 
}); 
+0

エラーは文字通り "this.functionNameは関数ではありません"ですか?そうでない場合は、参照された実際の関数名を提供するとともに、提供されたコードのどの行が例外のバックトレースに含まれているかを示します。 –

+0

申し訳ありませんが、未知の型エラーです:this.fullScreenは関数ではありません – Mark

答えて

1

resizeに渡されたコールバック関数が異なるthisを有するので、this.fullScreen()thisへの呼び出しは、必ずしもPE.functionsオブジェクトではありません。 、現在のthisbindコールバック関数解決するには、次の

fullScreenResize: function screenResize() { 
    $(window).resize(function() { 
     this.fullScreen(); 
    }.bind(this)); 
} 

するか、完全なオブジェクトパスPE.functions.fullScreen()this.fullScreen()を交換してください。

+0

今感謝しています。 – Mark

関連する問題