2012-07-25 280 views
0

在給定的場景中,我將如何將DOM對象分配給變量並調用它?在這個例子中,我試圖獲得「nav」元素的高度。現在它沒有返回任何值,我想這是因爲元素在文檔準備好之前被調用。jQuery將DOM元素分配給對象

$(document).ready(function(){ 
    gbe.init(); 
}); 


var gbe = { 

    navigation : $("nav"), 

    init : function() { 
     gbe.nav.init(); 
    }, 

    nav  : { 

     init : function() { 
      navHeight : gbe.navigation.height(); 
      console.log(gbe.nav.init.navHeight, gbe.navigation.height()); 
     } 
    } 

}; 
+0

使用了'。 ready()',所以DOM準備就緒,因爲它會得到... – 2012-07-25 21:47:16

回答

1

,如果你這樣做是什麼:

$(document).ready(function(){ 
    gbe.navigation = $("nav"); 
    gbe.init(); 
}); 
+0

是的,我使用HTML5標籤「nav」,但它必須適用於任何所需的元素。 – sbay 2012-07-25 21:46:26

+0

完美,像魅力一樣工作。謝謝! – sbay 2012-07-25 22:01:30

0

嘗試把你的$(document)。就緒下面的定義GBE。只有console.log語句中的第二個條目纔有效。

0
​$(document).ready(function() { 
    var $nav = $("nav"); 
    var height = $nav.height(); 
    console.log(height); 
});​ 

您是否正在嘗試揭示模塊模式?上面的代碼是快速和骯髒的方式。

FIDDLE:http://jsfiddle.net/jhZSG/

0

恕我直言,你應該通過jQuery將元素(S)的初始化函數,並把它。就緒()這樣的:

$(document).ready(function(){ 
    gbe.init($("nav")); 
}); 

var gbe = {  

    init : function(el) { 
     gbe.navigation : el, 
     gbe.nav.init(); 
    }, 

    nav  : { 

     init : function() { 
      navHeight : gbe.navigation.height(); 
      console.log(gbe.nav.init.navHeight, gbe.navigation.height()); 
     } 
    } 

};