使用jquery的结果有什么区别

时间:2012-03-13 01:47:13

标签: javascript jquery jquery-ui jquery-ui-sortable

我有以下代码。我想知道的是从#files转移到#gallery,反之亦然。通过这种方式,我发送了已发生变化的内容,并且不会将后端绑定到工作中。

$( "#files, #gallery" ).sortable({
  connectWith: ".connectedSortable",
  update : function () {
    alert($(this).sortable('serialize'));
  }
});
<ul id="files" class="connectedSortable">
<li id="g_1">G1</li>
<li id="g_2">G1</li>
<li id="g_3">G1</li>
<li id="g_4">G1</li>
</ul>

<div class="clear:both;"></div>

<ul id="gallery" class="connectedSortable"></ul>

1 个答案:

答案 0 :(得分:1)

如果要比较它们,则必须存储初始状态,可以使用'toArray'返回要比较的数组。这是使用'serialize'

var $files_init, $gallery_init, options = {
connectWith: ".connectedSortable",
    create : function (){
           window['$'+this.id+'_init'] = $(this).sortable('serialize');
        console.log(window['$'+this.id+'_init']);
    },
    update : function () {
           alert($(this).sortable('serialize'));
        console.log(window['$'+this.id+'_init']);
    }
};
$( "#files, #gallery" ).sortable(options);​

我在这里使用了一些技巧,在create&amp; amp;中使用动态变量名称。更新功能。现在你只需要一种比较它们的方法。这是JSfiddle http://jsfiddle.net/G5sxn/3/在有才华的John Resig's diffString function的帮助下展示的futzing around

使用PHP,您可以array_diff进行比较,但我不知道在JS中使用它的可靠方法。我一直{{3}}但我不确定最好的方法。

另外,您缺少更新功能的结束括号。