0

与えられたシナリオでは、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());
        }
    }

};
4

4 に答える 4

1

これを行った場合はどうなりますか?

$(document).ready( function(){ 
  gbe.navigation = $("nav");
  gbe.init();
});
于 2012-07-25T21:44:51.857 に答える
0

$(document).readyをgbeの定義の下に置いてみてください。console.logステートメントの2番目のエントリのみが機能します。

于 2012-07-25T21:48:11.627 に答える
0
​$(document).ready(function() {
    var $nav = $("nav");
    var height = $nav.height();
    console.log(height);
});​

モジュールパターンを明らかにしようとしていますか?上記のコードは、迅速で汚い方法です。

フィドル:http ://jsfiddle.net/jhZSG/

于 2012-07-25T21:52:48.363 に答える
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());
        }
    }

};
于 2012-07-25T22:31:52.527 に答える