页面加载正确后检查div属性

时间:2015-06-27 08:22:59

标签: javascript jquery

现在我想要在页面加载时检查元素大小。我一直在使用JSONArray messages = (JSONArray) jObject.get("routes"); for(int n = 0; n < messages.length(); n++) { JSONObject object = messages.getJSONObject(n); JSONArray legs = (JSONArray) object .get("legs"); // do your stuff.... } 这样做,但发现通常属性为null。如果我使用$(document).ready();,也是如此。

为了解决这个问题,我一直在使用一些黑客,如果没有设置元素,我会递归调用函数。

问题:在专业性方面是否有更好的方法?

$(window).load();

2 个答案:

答案 0 :(得分:3)

你根本不需要黑客攻击。这里的问题是在Main.run被触发之前调用document.ready()函数。你应该:

$(document).ready(Main.run);

而不是

$(document).ready(Main.run());

当您将()添加到函数名称时,interpeter会在到达该行时立即调用它。

传递回调时,您应该只传递对该函数的引用。

答案 1 :(得分:1)

就专业主义而言,我认为最好将代码放在这样的命名空间中:

 var app = window.app || {};
 app.set = {};
 app.set.makeMusic = (function(){

     // private members
     this.height = "";
     this.width = "";

     var init = function() {
         height = $('#bloc-1').height();
         width = $('#bloc-1').width();
         alert(height + " " + width);
     };

     //public interface
     return {
         init: init
     };

 })(); // self invoked

 $(function(){
     app.set.makeMusic.init();
 });

fiddle