jQuery UI可排序排序新的ul,动态添加

时间:2012-01-07 17:03:47

标签: jquery jquery-ui

我有一个页面允许用户使用jQuery动态添加新的ul,我将其作为参考:http://railscasts.com/episodes/197-nested-model-form-part-2?view=asciicast

我用它来动态添加新的ul

function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g");
  $(link).parent().before(content.replace(regexp, new_id));
}

现在我正在扩展它以使其可以按以下方式排序:

  $(document).ready(function () {
    $(".sortable_list").sortable({
      items: "li"
    }).disableSelection();
  });

现在的问题是,对于现有内容,页面加载时附加的ui-sortable中有一个类ul,因此jQuery只会将这些ul记为可排序。当我动态添加新的ul时,不附加ui-sortable类,因此它不可排序。

我尝试对我的模板进行硬编码,以便在动态添加每个新ui-sortable时添加一个类ul,但jQuery仍然无法使用{{1}识别新的ul可分类的。

如果我错了,请纠正我。我怀疑jQuery只会在ui-sortable首次加载时查找ul.sortable_list中可排序的所有列表。而已。对于每个新添加的ul.sortable_list,它都不可排序。

请告知我该如何解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

我读了它,用这个简单的方法。它可能会起作用。

function add_fields(link, association, content) {
  var new_id = new Date().getTime();
  var regexp = new RegExp("new_" + association, "g");
  $(link).parent().before(content.replace(regexp, new_id));

  $(".sortable_list").sortable({
    items: "li"
  }).disableSelection();     

}

注意:请确保您的可排序代码执行工作。我运行此代码一年,这对我很有用。我希望它对我来说和我一样