我试图设置一个超时来隐藏一个bootstrap模式,但即使我认为是正确的上下文绑定,我也无法隐藏模态。但是当我把它包含在一个函数中时,我确实让它工作了,因为我经常成功地使用bind
命令,所以我想知道我哪里出错了。
function Foo() {
this.$modal = $('#modal');
return this;
}
// bad
Foo.prototype.submitModal = function() {
var self = this;
this.doAjaxSubmit()
.done(function() {
// undefined function
setTimeout(self.$modal.modal.bind(self, 'hide'), 1000)
})
}
// good
Foo.prototype.submitModal = function() {
var self = this;
this.doAjaxSubmit()
.done(function() {
// works
setTimeout(hideModal, 1000)
})
function hideModal() {
self.$modal.modal('hide');
}
}