在我的应用中,当页面加载时,我会为3件事启动init
功能,
触发并发送页面号。 (我想将页面默认值设为1)
触发完成后,我想听到,所以我正在聆听
,用户可以插入/编辑页码(文本框),这样我就可以添加一个监听器来运行。
但是当函数开始时我正在安慰一个对象,但我得到的结果为undifined
。
这里有什么问题:
var docLoader = function (params) {
window.container = window.container || $("#tenderContent");
return {
init : function () {
this.cachePages = {};
$(document).on("newMessage", this.onPageChange);
$.event.trigger({
type: "newMessage"
});
},
onPageChange : function (e) {
console.log(this.cachePages) //undefined why?
}
}
}
html页面:
<script>
docLoader().init();
</script>
我是解除分离方法的新手,有人帮我详细说明了吗?
答案 0 :(得分:2)
这是因为你丢失了this
上下文。 jQuery将DOM元素作为上下文传递,而不是原始上下文。
您需要将函数的上下文绑定到现有的this
:
$(document).on("newMessage", this.onPageChange.bind(this));