0

下面的 jQuery 代码发生了什么?

$("#myDiv").val($(".cssValue").sortable('serialize',{expression: 'textExp[#]'}));

我了解它可以在 div 中的 css 值上启用排序,我愿意对此进行更正。

我对这部分感到困惑:

'serialize',{expression: 'textExp[#]'}
4

3 回答 3

1

http://docs.jquery.com/UI/Sortable#method-serialize

签名: .sortable( "serialize" , [options] ) 将可排序的项目 ID 序列化为表单/ajax 可提交字符串。调用此方法会生成一个哈希值,该哈希值可以附加到任何 url,以便轻松地将新的商品订单提交回服务器。

默认情况下,它通过以“setname_number”格式查看每个项目的 id 来工作,它会输出一个像“setname[]=number&setname[]=number”这样的哈希值。

您还可以提供选项哈希作为第二个参数,以自定义定义函数的工作方式。可能的选项是:'key'(用你想要的任何东西替换 part1[])、'attribute'(测试除 'id' 之外的另一个属性)和'expression'(使用你自己的正则表达式)。

如果 serialize 返回一个空字符串,请确保 id 属性包含下划线。它们必须采用以下形式:“set_number” 例如,具有 id 属性 foo_1、foo_5、foo_2 的 3 元素列表将序列化为 foo[]=1&foo[]=5&foo[]=2。您可以使用下划线、等号或连字符来分隔集合和数字。例如 foo=1 或 foo-1 或 foo_1 都序列化为 foo[]=1。

于 2012-05-11T13:24:16.047 回答
1

我了解它可以在 div 中的 css 值上启用排序,我愿意对此进行更正。

.sortable('serialize',{expression: 'textExp[#]'})实际上是用于在先前实例化的 jQuery UI 小部件上调用方法的 jQuery UI 语法。也就是说,这条线实际上并不是.cssValue可排序的——那是在之前的时间点完成的。这个命令只是序列化元素。

这是一个完整的运行:

// select an element with id='myDiv'
$("#myDiv")
    // note: .val() is used for setting the value of form fields, so this doesn't
    // seem to make a lot of sense, given that #myDiv is presumably a div
    .val(
        // select an element with class='cssValue'
        $(".cssValue")
            // call the serialize method on this jQuery UI sortable element
            // this will return a serialization of .cssValue - check out
            // the methods tab here http://jqueryui.com/demos/sortable/
            .sortable('serialize', { expression: 'textExp[#]'})
    );
于 2012-05-11T13:24:21.467 回答
0

它将具有 id 的元素的值设置myDiv为可排序的。(sortable是一个 jQuery 插件,请参阅此页面。)

于 2012-05-11T13:19:18.173 回答