0

私は本当にjQueryの問題で立ち往生しており、誰かが私を助けてくれることを願っています...

左側にオプションのリストがあり、いずれかをクリックすると、右側に Ajax を介してフォームが生成されます。フォームには次の要素があります。

<input type="text" class="value" value="something">

そして、私がしたいのは、電話することです

$(".value").tagsInput();

これは、質問をするときに SO の「タグ」入力フィールドとほとんど同じように機能する jQuery プラグインです。

だから私はこれを試しました:

$(document).ready(function() {
  $(".value").on("load", function () {
    console.log("Tags Input");
    $(".value").tagsInput();
  });
});

何も出力されません。私もこれを試しました:

$(document).on("change", ".value", function () {
  console.log("Tags Input");
  $(".value").tagsInput();
});

それも機能しません。私はどこで間違ったのだろうかと思っています。誰でも私を助けることができますか?ありがとう!!

4

2 に答える 2

0

入力要素がフォーカスを失うと、「変更」イベントが発生します。各キー入力の最後に ajax 呼び出しが必要な場合は、キーボード イベントを使用してみてください

于 2012-08-10T17:55:14.717 に答える
0

Shabnam が指摘したように、「変更」イベントは、フィールドがぼやけているときにのみ発生するため、必要なものではありません。

とにかく、プラグインのドキュメントから、キーが押されるたびにその関数を呼び出す必要はないように見えますが、独自のイベント ハンドラーを自律的にアタッチします。

したがって、おそらく次のことだけで問題ないはずです。

$(document).ready(function() {
    $(".value").tagsInput();
});

ページの準備ができたときにのみイベントが発生.onするため、ハンドラーは機能しません。loaddocument

少しデバッグしたい場合は、 などのサポートされているコールバックを確認してくださいonChange

サイドノート

jQuery.fnjQueryのドキュメントではそうしないことを推奨していますが、多くの関数で「グローバル」名前空間を詰まらせるため、そのプラグインの作成方法は好きではありません( Namespacingを参照)。

アップデート

ここを参照してください: http://jsfiddle.net/aFPHL/この動作の例 (.load()実際の URL を呼び出す必要がないようにモンキーパッチが適用されましたが、その動作は実際のものとほとんど同じです)。

于 2012-08-10T18:02:31.923 に答える