2011-07-14 64 views
0
var quiz = { 

    config : { 
     qType : $j('#questionTypeDdown') 
    }, 

    data : { 
     qType : 'test' 
    }, 

    init: function() { 
     quiz.assignUIActions(); 
    }, 

    assignUIActions : function() { 

     var c = quiz.config; 
     var d = quiz.data; 

     quiz.assignqType(c,d); 
    }, 

    assignqType : function(c,d) { 
     console.log(c.qType); 
     console.log(d.qType); 
    } 
}; 

$j(document).ready(function() { quiz.init(); }); 

console.log(c.qType)返回一个空的jQuery对象,但jQuery对象引用是空

console.log(d.qType)返回值“测试”

请解释为什么会发生,什么是让参考#questionTypeDdown的正确方法。

回答

2

在文档加载之前,您正在运行qType : $j('#questionTypeDdown')

你需要在$j(document).ready执行你的对象初始值设定项。

+0

参见最后一行$ j(document).ready(function(){quiz.init();}); – Adi

+0

@Adi:'qType:$ j('#questionTypeDdown')'运行_immediately_,而不是当你调用你的init函数时。 – SLaks

+0

你是否建议移动document.ready中的整个测验对象?我如何确保qType:$ j('#questionTypeDdown')仅在文档准备就绪时发生? – Adi