我有一个自定义jQuery函数,它获取一个输入选项对象,以及一个在它完成后运行的回调函数。此外,在jQuery函数中,我创建了一个回调对象,其中包含我希望在回调函数中可用的函数。
keyboardInput : function(input, callback){
// ...
if(typeof callback === 'function') {
callback.call(self.callback);
}
// ...
self.callback = {
hideCursor : function(){self.hiddenCursor = true;},
showCursor : function(){self.hiddenCursor = false;},
}
}
所以我调用了我的jQuery函数,并且回调运行,但我没有self.callback对象。
$('.txt-fx.keyboard-input.first').keyboardInput({
speed : [60, 120],
cursor : 'box',
cursorBorderWidth : 3,
delay : 2000,
}, function(obj){
setTimeout(function(){
obj.hideCursor();
$('.txt-fx.keyboard-input.second').keyboardInput({
speed : [60, 120],
cursor : 'box',
cursorBorderWidth : 3,
delay : 2000,
});
}, 3000)
});
抛出:
未捕获的TypeError:无法读取属性' hideCursor'未定义的
我做错了什么?
答案 0 :(得分:1)
fn.call(thisarg, parameter1, parameter1 ...)
您将回调的this
设置为self.callback - 请参阅MDN Documentation of function.call
callback.call(null, self.callback);