我正在创建一个具有排序功能的自定义 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/