未捕获的TypeError:undefined不是自定义jQuery插件的函数

时间:2014-10-09 16:15:56

标签: javascript jquery ajax

我已经为jquery自动完成插件创建了一个包装器插件,因为我们在项目的每个地方都使用它,并且有时需要全局更改它,但每当我引用插件时我都会收到错误:Uncaught TypeError: undefined is not a function我的插件看起来像这样:

(function ($) {
$.fn.CustomAutocomplete = function (options) {
    //Settings
    alert("test");
    var settings = $.extend({
        //Defaults
        ContollerMethodLink: "",
        ReturnElement: ""
    }, options);

    $(this).autocomplete({
        source: function (request, response) {
            var employees = new Array();
            $.ajax({
                async: false,
                cache: false,
                type: "POST",
                url: ContollerMethodLink,
                data: { "query": request.term },
                success: function (data) {
                    for (var i = 0; i < data.length; i++) {
                        employees[i] = { label: data[i].Key, Id: data[i].Value };
                    }
                }
            });
            response(employees);
        },
        select: function (event, ui) {
            //fill selected customer details on form
            var id = ui.item.Id;
            $('#' + settings.ReturnElement).val(id);
        }
    });
}
})(jQuery);

然后我这样称呼它:

    $(document).ready(function() {
        $('#AddReportingEmpText').CustomAutocomplete({
            ReturnElement: "AddReportingEmpId",
            ContollerMethodLink: "@(Url.Action("Method", "Controllers"))",
        });
    });

然而,当我尝试使用这个时,我在$(document).ready(function() {正上方的随机空白区域中得到了所述错误,如果我在我当前正在调用我的插件的地方硬编码ajax请求,一切正常。有什么想法吗?

编辑: 值得注意的是这是我的JS文件调用:

<script src="http://code.jquery.com/jquery-1.9.1.js" type="text/javascript"></script>
<script src="http://code.jquery.com/ui/1.10.2/jquery-ui.js" type="text/javascript"></script>

然后我调用我的插件文件,调试器显示我已正确包含

1 个答案:

答案 0 :(得分:0)

这似乎是最近版Chrome的众所周知的问题。使用FF浏览器将提供有关错误的更详细信息