0

以下にいくつかの 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
    });
});
4

2 に答える 2

1

私は以前に同様の問題に遭遇しました。私がうまくいくことがわかったのは、$(window).load(function(){...})の代わりに使用することです$(function(){...})。これにより、DOM が読み込まれるまでに準備ができていないものを、ウィンドウが完全に読み込まれるまでに準備できるようにするのに十分な時間が得られます。お役に立てれば。

于 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 に答える