jQuery没有';我不能不警觉地工作

jQuery没有';我不能不警觉地工作,jquery,Jquery,下面我有一些JavaScript,但除非我有如下所示的警报,否则它不会工作。我知道这是一个时间问题,但我不知道如何着手解决它。有什么想法吗 $(function() { $("#search_field").tokenInput("/searches/suggest_gems.json", { onAdd: function (item) { $('#search_field').val(item.name); // Doesn't work without al

下面我有一些JavaScript,但除非我有如下所示的
警报,否则它不会工作。我知道这是一个时间问题,但我不知道如何着手解决它。有什么想法吗

$(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
    });
});

我以前也遇到过类似的问题。我发现可以使用
$(window).load(function(){…})
而不是
$(function(){…})
。这为在加载DOM时还没有准备好的任何东西争取了足够的时间,以便在完全加载窗口时准备好。希望这有帮助。

尝试检查控制台是否有错误。在Chrome中,您可以使控制台持久化:

听起来像是异步问题。当您使用
警报时
,代码执行停止,错误不会显示。如果您没有使用此警报,则错误会停止代码执行,因此onAdd永远不会被触发,因此代码将不会被执行

首先,尝试检查在启动onAdd时DOM中是否仍然存在元素#search_字段

还要检查item.name是否未定义


检查onAdd启动前发生的情况。

这是什么意思?“没有警报就不能工作”?这是怎么回事?你的错误是什么?我们到底在修复什么?您可能需要使用
setInterval()
设置一个间隔,或者使用
setTimeout()
(在谷歌上查找,它们可能会帮助您)!是的,只是
alert()
将事情暂停足够长的时间,以便其他事情在幕后跟进。