我无法理解为什么我不能检查存储在变量中的jquery对象的.change()方法。这是语法错误吗?我是否失去了背景?
这是我的代码:
var MyObj = {
//declaration
reference : $('#reference'),
observeReference : function() {
//The following line is not tracking the .change() method.
//Not sure why... And I didn't any get console error!
this.reference.change(function() {
var opt = $('#reference option:selected').text();
if (opt === 'other' || opt === 'reference') {
$('#input_other').fadeIn();
} else{
$('#input_other').fadeOut();
$('#input_other_bx').val('');
};
}.bind(this));
},
init: function() {
this.observeReference();
}
};
$(document).ready(function() {
MyObj.init();
});
答案 0 :(得分:2)
如果$('#reference')
在文档就绪之前执行,它将获得一个jquery对象length = 0
。
init方法将在文档就绪后执行,因此在init方法中指定引用。
var MyObj = {
//declaration
reference : null,
...
init: function() {
this.reference = $('#reference');
this.observeReference();
}