javascript - 当我删除并重新添加 JQuery 事件时,它们会被解除绑定(bind)

标签 javascript jquery

我正在创建一个具有排序功能的自定义 View ,并且具有几乎可以工作的功能,除了一旦排序后,正在排序的元素的单击事件变得未绑定(bind),这可能是由于我删除元素并重新添加的结果它们已排序。

是否有更好的方法来做到这一点,以便“子级”保留绑定(bind)事件?

function sortcontainer(container, sortby)
{
 alert(container.data("sessionlist").datetimesort);
 var children = container.children();

 children.sort(function (a, b) {
  if (sortby == "datetime")
  {
   if (!$(a).attr("starttime"))
    return -1;
   else if (!$(b).attr("starttime"))
    return 1;
   else if (container.data("sessionlist").datetimesort)
    return $(a).attr("starttime") - $(b).attr("starttime");
   else
    return $(b).attr("starttime") - $(a).attr("starttime");

  }
 }); // End sort function

 container.empty();
 container.html(children);

 if (sortby == "datetime")
  container.data('sessionlist').datetimesort = !container.data('sessionlist').datetimesort;
}

最佳答案

如果您使用 jQuery,那么您将需要使用live 定义您的点击事件。句法。 live 所做的就是为与选择器匹配的所有当前和 future 事件绑定(bind)事件。

关于javascript - 当我删除并重新添加 JQuery 事件时,它们会被解除绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4703345/

相关文章:

javascript - 将数组和表单数据发送到 Controller - MVC Ajax

javascript - 如何重新启动/重置 Jquery 动画

asp.net - window.location 更改失败 AJAX 调用

javascript - Jsp 属性按条件禁用

javascript - React Router 中具有 404 路由的多个并行路由

javascript - Ctrl-K 在 Stackoverflow 中如何工作

javascript - Ajax简单问题

javascript - 带有区域折叠的 Easyui 布局

javascript - 有条件地启用禁用下拉列表和文本字段

javascript - CodeMirror - 检查光标是否位于行尾