2014-10-09 32 views
0

我做了一个包装插件jQuery的自动完成插件,因为我们在任何地方使用它在我们的项目,需要在全球范围内,在时代变化了,但是每当我引用插件我得到的错误:Uncaught TypeError: undefined is not a function我撑着看起来像这样:遗漏的类型错误:不确定是不是自定义jQuery插件的功能

(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() { if i hard co在当前我正在调用我的插件的地方退出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> 

然后我打电话给我的插件文件和调试器显示我,它被适当地包括

+0

这'“@(Url.Action(”法“‘控制器’))”'是无效的!也代替'网址:ContollerMethodLink,'你必须写'网址:settings.ContollerMethodLink,对变量的设置' – 2014-10-09 16:22:42

+0

@AminJafari不错的接球,尽管'@ url.Action'简单地打印相对URL到任何位指示/方法我通过它,并将它作为Ajax调用 – Typhomism 2014-10-09 17:30:33

回答

0

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

+0

这有助于解决问题的位置,问题是,正在纳入jQuery的两个版本的IM, – Typhomism 2014-10-09 19:55:30

相关问题