我有一个包含3列的表结构,每列都是一个“链接”可排序列表。
我想向我的服务器发送一个AJAX更新,它只包含给定列的信息(如果有任何项目被移动),并且只有两个给定列的项目被移动列之间。
要说明:如果列表A,第1项仅移动到列表A 中的新位置,我没有理由发送更新任何列表订单的请求但是列出A ,可以通过update
上的回调来完成。容易。
但是,如果我将列表A,第1项移动到列表B ,我想尽可能少地发送请求(1,可能是2)来更新订购给定的清单。但是,在使用回调receive
和remove
时,update
始终也被调用。
我的第一个想法是使用update
和/或remove
,找到原始列表,然后更新两者。但是首先调用update
,这将导致至少一个额外的ajax请求到服务器。
如果我只使用 update
而只是在回调中查看ui.sender
,我仍然会发送2个请求,因为第一个更新会触发现在的列表缺少一个项目(我必须假设它只是没有使用ui.sender
),然后第二次更新用ui.sender
触发,我将更新旧列表和新列表。
我不能不使用update
,否则我会错过在自己的列表中移动的项目。
我该如何处理?我忽略了什么?
答案 0 :(得分:0)
我花了一些时间在这上面并且失望了,这里没有答案!!
但我最终想通了。
它通过检查父UL来查看该项是否实际存在于其更新的列表中。
var sortorder = ui.item.index();
if(this.children[sortorder] != null
&& this.children[sortorder].innerHTML == ui.item.context.innerHTML) //you could use an id here.
{
// do stuff like update the sort order of the record in the database via ajax.
}
什么是堆栈溢出和只有一行的代码框? 有没有人有这个问题? 我正在使用IE 6
干杯, 佰。