0

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

2 回答 2

1

I've run into similar issues before. What I've found to work is using $(window).load(function(){...}) instead of $(function(){...}). This buys enough time to let anything that's not ready by the time the DOM is loaded to be ready by the time the window is loaded fully. Hope this helps.

于 2013-01-07T21:27:31.757 回答
0

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

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

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

还要检查那个项目。名称不是未定义的。

检查onAdd被触发之前发生了什么。

于 2013-01-07T21:36:19.353 回答