gpt4 book ai didi

javascript - 未捕获的类型错误 : Cannot read property 'Constructor' of undefined

转载 作者:行者123 更新时间:2023-12-01 05:53:31 26 4
gpt4 key购买 nike

我在 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>

并试图获取 typeahead.js在我们的导航栏中工作。下面是我机器上当前的代码。我曾经在某个时间点工作过,但是在与同事同步后,预先输入搜索不再工作,我无法找到问题。

下面代码中的第一行给出以下错误

Uncaught TypeError: Cannot read property 'Constructor' of undefined

但是,如果我注释掉 protoype.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);
}
});

这是我将其绑定(bind)到的搜索框

            <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 没有定义。

如果您尝试扩展预输入功能,本文可能会有所帮助: Extend the bootstrap-typeahead in order to take an object instead of a string

$.fn 将始终返回一个对象('[]'),这就是为什么当您注释掉 .prototype.blur 时错误会发生变化,但它们都表明 'typeahead' 不存在。

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

关于javascript - 未捕获的类型错误 : Cannot read property 'Constructor' of undefined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18775269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com