没有警报,jQuery无法正常工作

时间:2013-01-07 21:18:58

标签: jquery

我下面有一些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
    });
});

2 个答案:

答案 0 :(得分:1)

我之前遇到过类似的问题。我发现的工作是使用$(window).load(function(){...})而不是$(function(){...})。这样可以节省足够的时间,在窗口完全加载时,在DOM加载时尚未准备就绪。希望这会有所帮助。

答案 1 :(得分:0)

尝试检查控制台是否有错误。在Chrome中,您可以使控制台保持持久性:https://stackoverflow.com/a/7661797/1446608

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

首先,尝试在 onAdd 被触发时检查元素 #search_field 是否仍然存在于DOM中。

同时检查该项目。名称未定义。

检查在激活 onAdd 之前发生了什么。