1

私はjquery 1.8.3を使用しているので、.live()の使用から.on()の使用に変更しようとしていますSOの他の多くの人と同じように-うまくいきません-何が間違っていますか? .live() を使用するのが間違っている場合、なぜ一貫してうまく機能するのですか?

( txtbxhost は動的に追加されていないテキストボックスであり、すでに DOM に存在します)

$('#txtbxhost').live('input', function() {
  // works everytime            
});


$('#txtbxhost').on('change', 'input',  function() {
   // fails everytime           
});

$('#txtbxhost').on('change', '#txtbxhost',  function() {
   // fails everytime           
});

$(document).on('change', '#txtbxhost',  function() {
   // fails everytime           
});

私はここでアイデアがありません...助けてください...

4

3 に答える 3

3

あなたはおそらく欲しい:

$(document).on('input', '#txtbxhost',  function() {
   // code here           
});

このフィドルをチェックしてください

また、次のchange場合にのみ機能しますblur-つまり、テキストボックス内のテキストを変更した後、他の場所をクリックします。

だから、これもうまくいくはずです

$(document).on('change', '#txtbxhost',  function() {
   // fails everytime           
});

更新されたフィドルを確認する

于 2013-06-13T23:09:49.990 に答える