Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';建造商';未定义的_Javascript_Jquery_Asp.net Mvc 3_Jquery Ui_Typeahead.js - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';建造商';未定义的

Javascript 未捕获类型错误:无法读取属性';建造商';未定义的,javascript,jquery,asp.net-mvc-3,jquery-ui,typeahead.js,Javascript,Jquery,Asp.net Mvc 3,Jquery Ui,Typeahead.js,我在我的ASP MVC 3主布局页面上收到了这条消息和其他一些奇怪的错误消息 我正在使用以下脚本 <script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript"></scrip

我在我的ASP MVC 3主布局页面上收到了这条消息和其他一些奇怪的错误消息

我正在使用以下脚本

<script src="@Url.Content("~/Scripts/modernizr-1.7.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-1.8.3.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery-ui.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/typeahead.js")" type="text/javascript"></script>
但是,如果我注释掉
prototype.blur
函数,就会得到这个错误

Uncaught TypeError: Object [object Object] has no method 'typeahead' 
它指向
$('.AgentSearch.typeahead).typeahead
函数。在这件事上已经坚持了好几个小时,如果有任何帮助,我们将不胜感激。谢谢

        // Workaround for bug in mouse item selection
        $.fn.typeahead.Constructor.prototype.blur = function () {
            var that = this;
            setTimeout(function () { that.hide() }, 250);
        };

        $('.AgentSearch').typeahead({
            source: function (term, process) {
                var url = '@Url.Action("GetAgents", "Agent")';
                var agents = [];
                map = {};
                return ($.getJSON(url, { term: term }, function (data) {
                    $.each(data, function (i, item) {
                        map[item.Name] = item;
                        agents.push(item.Name);
                    });
                    process(agents);
                }));
            },
            highlighter: function (item) {
                var p = map[item];
                var display = ''
                             + "<div class='typeahead_wrapper'>"
                             + "<div class='typeahead_labels'>"
                             + "<div class='typeahead_primary'>" + p.Name + "</div>"
                             + "<div class='typeahead_third'><i>LastFour:</i> " + p.LastFour + "</div>"
                             + "</div>"
                             + "</div>";
                return display;
            },
            updater: function (item) {
                window.location.href = ("/Monet/Agent/Details/" + map[item].SymetraNumber);
            }
        });
//鼠标项选择错误的解决方法
$.fn.typeahead.Constructor.prototype.blur=函数(){
var=这个;
setTimeout(函数(){that.hide()},250);
};
$('.AgentSearch')。提前键入({
来源:功能(术语、过程){
var url='@url.Action(“GetAgents”,“Agent”);
var代理=[];
map={};
返回($.getJSON(url,{term:term},函数(数据){
$。每个(数据、功能(i、项){
映射[项目名称]=项目;
代理.推送(项目.名称);
});
过程(代理);
}));
},
荧光灯:功能(项目){
var p=映射[项目];
变量显示=“”
+ ""
+ ""
+“”+p.名称+“”
+“LastFour:+p.LastFour+”
+ ""
+ "";
返回显示;
},
更新程序:函数(项){
window.location.href=(“/Monet/Agent/Details/”+map[item].SymetraNumber);
}
});
这是我绑定到的搜索框

            <form class="navbar-search pull-left">   
                <input type="text" name="names" value="" id="AgentSearch" class="search-query" data-provide="typeahead" placeholder=" Agent Search"/> 
            </form>

编辑

以下是由浏览器呈现的脚本标记

<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-1.8.3.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui.js" type="text/javascript"></script>
<script src="/Scripts/typeahead.js" type="text/javascript"></script>

似乎没有定义typeahead

如果您试图扩展typeahead,本文可能会有所帮助:

$.fn将始终返回一个对象(“[]”),这就是为什么在注释掉.prototype.blur时错误会更改,但它们都表示“typeahead”不存在


这只是猜测,但可能是同步性问题,在加载库之前您的代码正在运行。

看起来typeahead.js文件没有正确包含,您是否检查了标记中输出的url。是的,所有内容都是向上的。刚刚添加到帖子中。请注意typeahead,js与bootstrap 2中的typeahead不同。在帖子中有一个指向我正在使用的文件的链接。这不是引导版本。
<script src="/Scripts/modernizr-1.7.min.js" type="text/javascript"></script>
<script src="/Scripts/jquery-1.8.3.js" type="text/javascript"></script>
<script src="/Scripts/jquery-ui.js" type="text/javascript"></script>
<script src="/Scripts/typeahead.js" type="text/javascript"></script>