如何序列化与jQueryUI可排序列表的当前项相关的数据
How to serialize data related to the current item of a jQueryUI sortable list?
我使用jQueryUI 1.8.14。我想实现一个可排序的列表,并在每次用户更改项目位置时将相关的项目位置更改保存在我的应用程序数据库中。
要做到这一点,我计划检索和序列化id
值和刚刚改变其位置的项目的新位置值(我需要这样做,以便生成和准备数据,以便执行AJAX HTTP请求)。无论如何,使用官方文档中描述的serialize
方法,它将序列化可提交字符串中的所有项目id
值(例如:key=1&key=2&...
),但我想序列化仅当前项目id
值并检索其新位置值。
我怎么能使'代码?
现在我正试着这样实现这个功能:
JavaScript代码:
$jQ(function() {
$jQ("#sortable_list").sortable({
placeholder: "ui-state-highlight",
update: function(event, ui) {
// Here I would like to "serialize" ONLY the current updated item and
// then perform the AJAX HTTP request
// alert($jQ("#sortable_list").sortable("serialize"))
...
}
});
$jQ( "#sortable_list" ).disableSelection();
});
HTML代码
<ul id="sortable_list">
<li class="ui-state-default" id="key_1"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>
<li class="ui-state-default" id="key_2"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>
...
</ul>
例如,如果我改变与id="key_2"
相关的项目位置,我只想将该数据序列化为key=2
(注意:通常serialize
方法生成的数据与key=1&key=2&...
类似)。此外,我想包括该项目的当前'新位置(例如:new_position=1
)。最后,我想执行AJAX HTTP请求,包括这些参数:<URL_string>?key=2&new_position=1
.
测试过了http://jsfiddle.net/kRsCE/
$jQ(function() {
$jQ("#sortable_list").sortable({
placeholder: "ui-state-highlight",
update: function(event, ui) {
var itemid = $(ui.item).attr('id');
var position;
$jQ("sortable_list > li").each(function(index) {
if($(this).attr('id') == itemid) {
position = index;
return;
}
});
$.post('yourajaxscript', '&key='+itemid+'&new_position='+position, function(data) {
//handle response
});
}
});
$jQ( "#sortable_list" ).disableSelection();
});
相关文章:
- 要求输入在数据列表中
- 使用JavaScript在IE9中获取数据列表选项
- 使用AJAX创建数据列表
- 从要使用Protractor测试的服务器异步加载的动态数据列表的列表
- 为什么数据列表选项的id返回空值
- 如何调用更改事件,例如在 HTML 数据列表上选择
- 在 d3 中为数据列表创建元素
- asp.net 数据列表中的跟踪标签 ID
- 通过遍历JSON文件来填充数据列表选项
- PHP:从数据列表中打印(循环困难)
- 无法获取数据列表中项目的值
- 从不同页面收集数据以形成数据列表,并将它们一起发送
- 检查给定的数据列表中是否存在表单字段值
- Jquery调用数据列表选项卡或输入
- 按调用顺序返回由Ajax/HTTP生成的数据列表
- 如何根据输入值可靠地计算数据列表中的匹配数
- 如何在angularJs中使用数据列表
- 如何检测从数据列表中选择时更改的输入字段
- 将文件转换为数组并使用数据列表和选项标签为自动完成文本框添加数组元素
- Zend Form 1.x使用html5数据列表标签