通过ajax调用改变DOM后重新绑定jquery事件是否可能?

3

我有一个表格,它正在通过ajax调用进行动态重新填充。

我还有一个keyup事件,它基于用户输入过滤表格行:

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

但是当我从ajax调用中重新填充表格时,过滤器不再起作用。有没有办法规避这个问题,以便我能够使用keyup事件?是否可以在每次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
在 jQuery API 网站上查找 .on() 和旧的 .delegate() API。 - Pointy
1个回答

5

你可以使用 $('input#DocumentType').live("click",function(){});

在最新的jQuery版本中,建议使用.on().off()代替live()die()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接