jQuery - 触发器不产生预期的结果

jQuery - trigger not produce the expected result

本文关键字:结果 触发器 jQuery      更新时间:2023-09-26

在我的应用程序中,当页面加载时,我启动了 3 件事的init函数,

  1. 触发器并发送页码。(我想将页面默认值传递为 1)

  2. 触发完成后,我想听到,所以我在听

  3. 同样,用户可以插入/编辑页码(文本框),因此我正在添加一个侦听器来运行。

但是当函数启动时,我正在安慰一个对象,但我得到的结果是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?
        }
    }
}

网页 :

<script>
    docLoader().init();
</script>

我是解耦方法的新手,有人帮我提供细节吗?

这是因为您丢失了this上下文。 jQuery将DOM元素作为上下文传递,而不是原始上下文

您需要将函数的上下文绑定到现有this

$(document).on("newMessage", this.onPageChange.bind(this));