2012-01-20 7 views
3

私は、ajax呼び出しによって動的に再投入されているテーブルを持っています。DOMがajax呼び出しによって変更された後にjqueryイベントを再バインドすることは可能ですか?

私もtehのユーザー入力に基づいてテーブルの行をフィルタからkeyupイベントがあります。

$('input#DocumentType').keyup(function() { filter rows }); 

をしかし、私はAJAX呼び出しから表を再作成するとき。フィルターはもはや機能しません。私がkeyupイベントを使用できるようにこれを回避する方法はありますか?テーブル行がteh ajax呼び出しから変更されるたびにこれを再バインドすることは可能ですか?ここ

は私がフィルタリングしています方法です:

<script type="text/javascript"> 
var $cellsT = $('table tbody tr td:nth-child(4)'), 
      $hiddenT = $(); 
     $('input#DocumentType').keyup(function() { 
      var search = $(this).val(); 
      var $to_hide = $cellsT.filter(function() { 
       var s = $(this).text().indexOf(search) === -1; 

       if (s === false) { 
        foundDocuments = true;        
       } 
       return $(this).text().indexOf(search) === -1; 
      }).parent(); 

      $hiddenT.not($to_hide.get()).show(); 
      $hiddenT = $to_hide.hide();  
</script> 
+2

.on().off()を使用することが好ましい '見上げて.on() 'とjQuery APIサイトの古い' .delegate() 'APIを使用します。 – Pointy

答えて

5

あなたはjQueryの最新バージョンでも$('input#DocumentType').live("click",function(){});

を行うことができ、その代わりにlive()die()

関連する問題