在DOM被ajax调用更改后,是否可以重新绑定jquery事件

Is it possible to rebind jquery events after the DOM has changed by an ajax call?

本文关键字:新绑定 绑定 事件 jquery 是否 ajax DOM 调用      更新时间:2023-09-26

我有一个由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>

您可以执行$('input#DocumentType').live("click",function(){});

同样,在最新版本的jQuery中,它更倾向于使用.on().off(),而不是live()die()