解释一些代码

时间:2012-05-11 13:15:40

标签: jquery

以下jQuery代码中发生了什么?

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

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

我对这部分感到困惑:

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

3 个答案:

答案 0 :(得分:1)

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

签名: .sortable(“序列化”,[选项]) 将可排序的项目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.

答案 1 :(得分: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[#]'})
    );

答案 2 :(得分:0)

它将id为myDiv的元素的值设置为可排序。 (sortable是一个jQuery插件,see this page。)