我有一个插件,实质上是对服务器端的表进行排序,并将内容放回到容器中。我有一个绑定函数,它将一个单击事件添加到表格单元格中,以调用父表单提交。我觉得这不是解决这个问题的最好方法。有任何想法吗?jQuery:有一个更有效的方法来做到这一点,不是吗?
$.fn.myplugin = function() {
return this.each(function() {
var parentform = $(this).parents("form");
var tableidentifier = $(this).attr("id");
var bindclicks = function() {
parentform.find("table#" + tableidentifier + " thead tr th").click(function() {
// Some code to change the sort column- boring!
parentform.submit();
});
}
bindclicks();
parentform.submit(function() {
$.post(parentform.attr("action"), parentform.serialize(), function(res) {
parentform.find("table#" + tableidentifier).replaceWith($(res));
bindclicks();
})
return false;
});
});
}
我首先调用bindclicks()
函数来设置单击处理了,然后因为我做replaceWith()
我再次调用它来重新绑定的事件。它的工作原理,但我很好奇..
+1,'代表'是要走的路 – 2011-04-25 19:11:32
酷!从来没有使用委托功能 - 非常非常方便。 – Wells 2011-04-25 19:15:30