繁体   English   中英

为什么我的类在运行时未定义。 Javascript模块模式

[英]Why is my class undefined at runtime. Javascript module pattern

当我运行我的应用程序时,我得到:“未捕获的TypeError:无法读取未定义的属性'init'”文档reasdy函数中的警报运行,所以我知道jQuery在那时被加载。 但我不知道为什么任务未定义。

这是在MVC5应用程序中,并运行jQuery 1.10.2

请帮助,jsFiddle工作正常,JsHint没有显示错误。

    var Task = (function () {

    var initialize = function () {
        console.log($);
        bindEvents();
    };
    var postFilter = function () {
        console.log("clicked");
        var postData = {
            UserID: $('#user_select').val,
            TaskTypeID: $('#taskTypeSelect').val,
            TaskStatusID: $('#status_select').val,
            PriorityID: $('#priority_select').val
        };

        $.ajax({
            url: "/Tasks/_AllTaskView",
            data: postData,
            success: function (response) {
                $('#results').html(response);
            }

        });
    };

    var bindEvents = function () {
        $('#submit_filter').on('click', postFilter);
    };

    return
    {
        init : initialize

    };

})();

$(document).ready(function () {
    alert()
    Task.init();
});

把你的大括号return在同一条线上的return

代替:

return
{
    init : initialize

};

做这个:

return {
    init : initialize
};

JavaScript具有自动分号插入功能,它会在返回大括号之前自动结束return语句。

试试这个:

return{ init : function(){
                 initialize();
               }
      }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM