我下面有一些JavaScript,但除非我有alert
,否则它不起作用,如下所示。我知道这是某种时间问题,但我不知道如何修复它。有什么想法吗?
$(function() {
$("#search_field").tokenInput("/searches/suggest_gems.json", {
onAdd: function (item) {
$('#search_field').val(item.name);
// Doesn't work without alert("hi");
},
crossDomain: false,
tokenLimit: 1,
tokenValue: name
});
});
答案 0 :(得分:1)
我之前遇到过类似的问题。我发现的工作是使用$(window).load(function(){...})
而不是$(function(){...})
。这样可以节省足够的时间,在窗口完全加载时,在DOM加载时尚未准备就绪。希望这会有所帮助。
答案 1 :(得分:0)
尝试检查控制台是否有错误。在Chrome中,您可以使控制台保持持久性:https://stackoverflow.com/a/7661797/1446608
听起来像是异步问题。当您使用alert
时,代码执行停止,并且不显示错误。如果您没有使用警报,则错误会停止执行代码,因此永远不会触发 onAdd ,因此不会执行代码。
首先,尝试在 onAdd 被触发时检查元素 #search_field 是否仍然存在于DOM中。
同时检查该项目。名称未定义。
检查在激活 onAdd 之前发生了什么。