使用jquery的结果之间有什么区别

What is the difference between results using jquery

本文关键字:什么 区别 之间 结果 jquery 使用      更新时间:2023-09-26

我有以下代码。我想知道的是从#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>

如果您想比较它们,您必须存储一个初始状态,您可以使用'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&更新功能。现在你只需要一种比较它们的方法。这是一个JSfiddlehttp://jsfiddle.net/G5sxn/3/借助天才John Resig的diffString函数进行演示。

使用PHP,你可以只做array_diff来比较它们,但我不知道在JS中有什么可靠的方法可以做到这一点。我一直在摸索,但我不确定最好的方法。

​此外,您的更新功能缺少一个括号。