2015-10-06 73 views
0
var app = app || {}; 

(function ($) { 
    app.initialize = { 
     init: function() { 
      app.initialize.fullScreen(); 
     }, 
     fullScreen: function() { 
      var scrHeight = $window.height(); 
      console.log($fullScreenEl.length); 
      $fullScreenEl.css('height', scrHeight); 
     } 
    }; 

    app.documentOnReady = { 
     init: function() { 
      app.initialize.init(); 
     } 
    }; 


    var $window = $(window), 
     $fullScreenEl = $('.full-screen'); 

    $(document).ready(app.documentOnReady.init); 

})(jQuery); 

这是我的代码,当我运行代码$ fullScreenEl length返回零时,我不明白为什么。如果从(function($){})(jQuery)移动Document ready;那么$('。full-screen').lenght会返回1.有人可以给我一些建议吗?jquery选择器长度返回0

+2

您正在'ready'处理程序之外初始化'$ fullScreenEl'。 –

回答

2

变化这样说:

(function ($) { 
    app.initialize = { 
     init: function() { 
      app.initialize.fullScreen(); 
     }, 
     fullScreen: function() { 

      var $window = $(window), 
       $fullScreenEl = $('.full-screen'); 

      var scrHeight = $window.height(); 
      console.log($fullScreenEl.length); 
      $fullScreenEl.css('height', scrHeight); 
     } 
    }; 

    app.documentOnReady = { 
     init: function() { 
      app.initialize.init(); 
     } 
    }; 


    $(document).ready(app.documentOnReady.init); 

})(jQuery); 

你要选择的要素时,该文档已准备就绪。另外,通过移动fullScreen函数中的$window$fullScreenEl,性能会更好,因为访问范围外的变量比访问同一范围内的变量要慢。