0

だから私は、すべての外で、何かの最初に宣言されたオブジェクトまたは配列を持っています:

var Thing = {title:'horse'};

それから私は持っています:-

$('.clickedIt').fadeOut(200, function() { console.log(Thing.title); }

それは失敗します。ただし、同じコンソールのログアウトをfadeOutの上に配置すると、問題ありません。

4

2 に答える 2

4

何かをグローバルにしたい場合は、windowオブジェクトで定義するだけです。

window.Thing = { title: 'horse '};

次に、次のように使用します。

$( '.clickedIt' ).fadeOut(200, function() { 
    console.log( window.Thing.title ); 
});

注意点として、オブジェクトにいくつかの変数を配置するwindowことはお勧めしません。名前空間を調べることをお勧めします:http: //addyosmani.com/blog/essential-js-namespacing/

次に例を示します。

//simple JavaScript module
( function( window ) {
    //define your applications root namespace
    window.myApp = {
        Thing: { title: 'horse '}
    };
})( window );

//jQuery ready function
$( function() {
    $( '.clickedIt' ).fadeOut( 200, function() { 
        console.log( myApp.Thing.title ); 
    });
});
于 2012-08-17T15:55:55.460 に答える
1

タイトルの馬に割り当てた値は未定義です。引用符で囲んで文字列を文字列にします。

ライブデモ

var Thing = {title:'horse'};
$('.clickedIt').fadeOut(200, function() { console.log(Thing.title); })​
于 2012-08-17T15:58:56.427 に答える