Javascript jqueryui可排序’;s serialize方法排除一项
我正在使用jqueryuiJavascript jqueryui可排序’;s serialize方法排除一项,javascript,jquery,jquery-ui,serialization,jquery-ui-sortable,Javascript,Jquery,Jquery Ui,Serialization,Jquery Ui Sortable,我正在使用jqueryuisortable获取页面上的元素列表,每次更改元素的顺序时,我都要将其保存在数据库中 然而,我遇到了一个奇怪的bug(在我看来,它就像一个bug):无论是serialize还是toArray方法都总是从生成的序列化字符串(或数组)中排除一个项。始终是当前正在拖动的项。这意味着订单从未被正确跟踪 下面是我的javascript示例: $('.setContent').sortable({change: function(event, ui) {
sortable
获取页面上的元素列表,每次更改元素的顺序时,我都要将其保存在数据库中
然而,我遇到了一个奇怪的bug(在我看来,它就像一个bug):无论是serialize
还是toArray
方法都总是从生成的序列化字符串(或数组)中排除一个项。始终是当前正在拖动的项。这意味着订单从未被正确跟踪
下面是我的javascript示例:
$('.setContent').sortable({change:
function(event, ui) {
// Serialise the new order
var newOrder = $('.setContent').sortable('serialize');
// Add the current set id and the action name
newOrder += '&setId='+currentSet+'&action=usrStuff:changeCardsOrder';
// Send the data to the server
$.post('ajax.php', newOrder);
}
});
以及HTML:
<div class="setContent>
<div class="cardSmall" id="card_5">
<div class="hanzi">俄国</div>
<div class="meaning">Russia</div>
</div>
<div class="cardSmall" id="card_4">
<div class="hanzi">韩国</div>
<div class="meaning">Korea</div>
</div>
<div class="cardSmall" id="card_6">
<div class="hanzi">中国</div>
<div class="meaning">China</div>
</div>
<div class="cardSmall" id="card_12">
<div class="hanzi">日本</div>
<div class="meaning">Japan</div>
</div>
<div class="cardSmall" id="card_13">
<div class="hanzi">德国</div>
<div class="meaning">Germany</div>
</div>
<div class="cardSmall" id="card_17">
<div class="hanzi">巴西</div>
<div class="meaning">Brasil</div>
</div>
<div class="cardSmall" id="card_14">
<div class="hanzi">法国</div>
<div class="meaning">France</div>
</div>
<div class="cardSmall" id="card_19">
<div class="hanzi">美国</div>
<div class="meaning">America</div>
</div>
<div class="cardSmall" id="card_16">
<div class="hanzi">英国</div>
<div class="meaning">England</div>
</div>
</div>
您可能想要的是更新
事件,而不是更改
事件
change
在排序过程中,只要DOM中的项的顺序发生变化,即使用户没有放弃正在移动的项,也会触发该命令<代码>更新
在用户更改可排序元素的顺序后激发。当然!非常感谢,我错过了这样的事情真是太愚蠢了。感谢这一点,我还假设这是正确的事件,因为docs声明“此事件是在排序期间触发的,但只有在DOM位置发生更改时才会触发。”如果DOM位置发生更改,那么我将不得不假设正在拖动的元素必须是可排序的一部分。