0

所以我有一个对象或数组,在任何东西的开头声明,在一切之外:

var Thing = {title:'horse'};

然后我有: -

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

那将失败。但是,如果我将退出淡出的同一个控制台日志放在上面,那就没问题了。

4

2 回答 2

4

如果您希望某些东西是全局的,只需在windowObject 上定义它。

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

您分配给标题 horse 的值是未定义的,将其用引号括起来以使其成为字符串字面量,

现场演示

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