jQuery Webサイトで言及されているため、.live()
メソッドは推奨されなくなりました。
イベントを使おうとしていたの.on()
ですが、期待通りに動作しません。.live
次のシナリオで使用しても問題はありません。
オートコンプリートプラグインを使用するフィールドがあります。
つまり、エントリを入力しようとするたびに、このようなフィールド(プラグインによって生成された)に入力します。つまり、最初のエントリを入力して完了が完了すると、2回目に入力します。入力、同じクラスの別の新しいフィールドが作成されます。
<li id="select">
<input type="text" autocomplete="off" size="0" class="input">
</li>
私がやろうとしているのは、貼り付けハンドラーを生成して、何かを貼り付けるたびに入力になるようにすることです。これは、独自のタグ(とにかく現在の問題とは関係ありません)を持つエントリになります。.liveイベントを使用すると、期待どおりに機能します。初めてのペーストだけでなく、将来のペーストにも対応します。しかし、ライブではなく.onに変更すると、最初の貼り付けでのみ機能します。以下は私のコードです:
$(document).ready(function () {
$(".input").live('paste', function (event) {
var element = this;
setTimeout(function () {
var text = $(element).val();
addItem(text);
}, 10);
});
});
なぜこれが起こっているのか誰か説明できますか?