我有 3 个可排序的 UL 和一个简单的 jquery/javascript
<ul class="sortable" id="menu1">
<li id="id_1">whatever</li>
<li id="id_2">you</li>
</ul>
<ul class="sortable" id="menu2">
<li id="id_3">wanne</li>
<li id="id_4">put</li>
</ul>
<ul class="sortable" id="menu3">
<li id="id_5">in</li>
<li id="id_6">here</li>
</ul>
$(function() {
$("ul.sortable").sortable({
connectWith: 'ul'
});
});
</script>
LI 可以在 UL 之间拖动 我如何序列化它,以便我得到例如 menu1[0]=1&menu1[1]=3 或者数组或者任何我可以用来保存状态的东西?
最佳答案
已更新
在你的情况下使用这个:
$(function() {
$("ul.sortable").sortable({
connectWith: '.sortable',
update: function(event, ui) {
var position = $('.sortable').serial();
alert( position );
}
});
});
//此函数使您的 UL LI 成为序列化对象
(function($) {
$.fn.serial = function() {
var array = [];
var $elem = $(this);
$elem.each(function(i) {
var menu = this.id;
$('li', this).each(function(e) {
array.push(menu + '[' + e + ']=' + this.id);
});
});
return array.join('&');
}
})(jQuery);
这会给你这样的东西:
menu1[0]=id_1&menu1[1]=id_2&menu2[0]=id_4&menu2[1]=id_6&menu3[0]=id_5&menu3[1]=id_3
表示每个元素的位置顺序
关于jquery - 如何使用 Jquery 序列化多个列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2936999/