在给定的场景中,如何将DOM对象分配给变量并调用它?在这个例子中,我试图获得“nav”元素的高度。现在它没有返回任何值,我认为这是因为在文档准备好之前调用了元素。
$(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 :(得分:1)
如果你这样做会怎么样:
$(document).ready( function(){
gbe.navigation = $("nav");
gbe.init();
});
答案 1 :(得分:0)
尝试将$(document).ready放在gbe的定义之下。只有console.log语句中的第二个条目才有效。
答案 2 :(得分:0)
$(document).ready(function() {
var $nav = $("nav");
var height = $nav.height();
console.log(height);
});
您是否正在尝试揭示模块模式?上面的代码是快速而肮脏的方式。
FIDDLE:http://jsfiddle.net/jhZSG/
答案 3 :(得分:0)
恕我直言,你应该通过jQuery将元素传递给init函数,并将它传递给.ready(),如下所示:
$(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());
}
}
};