向我解释jQuery的这个片段

时间:2010-03-04 16:09:01

标签: javascript jquery

我是jQuery的新手,有人可以解释这段代码的作用:

$(document).ready(function() {
    var order = null;
    $("#order-list").load(location.href+" #order-list>*","");   
    $("#order-list").sortable({
      handle : '.handle',
      update : function (e, ui) {
             order = $(this).sortable('serialize');
         $("#info").load("process-sortable.php?"+order);
    }
    });

});

2 个答案:

答案 0 :(得分:4)

Straight from the API docs,“加载页面碎片”:

与$ .get()不同,.load()方法允许我们指定要插入的远程文档的一部分。这是通过url参数的特殊语法实现的。如果一个或者字符串中包含更多空格字符,第一个空格后面的字符串部分被假定为jQuery选择器,用于确定要加载的内容。

我们可以修改上面的示例以仅获取文档的一部分:

$('#result').load('ajax/test.html #container');

当此方法执行时,它会检索ajax / test.html的内容,但随后jQuery会解析返回的文档以查找ID为container的元素。此元素及其内容将插入到具有结果ID的元素中,并且将丢弃检索到的文档的其余部分。

答案 1 :(得分:0)

load表示“将匹配集中的任何内容(在本例中为id order-list的元素)替换为我传递的URI中返回的任何HTML。”

sortable是一个插件,不是jQuery本身的一部分。传递的对象是插件的options参数。请参阅docs for sortable for the meaning of properties of the options object。对于handle,它说:

  

限制排序开始点击指定的元素。

现在,这段代码看起来像是一个bug。它执行异步加载,但随后调用sortable而不等待加载完成。 load接受回调,因此您通常会将其用于要对加载的HTML执行的任何操作。