JQuery Sortable,优化多个输入字段的代码

时间:2013-06-14 18:05:16

标签: jquery jquery-ui user-interface jquery-ui-sortable

我有10个文本输入字段,每个字段使用select2和jquery可排序。

实际上,为了对每个字段都有可排序的功能,我为每个字段重复了代码,它运行良好。但是你可以理解,我会优化它以使用N个字段。

我的代码:

    // Sortable
    jQuery("#_posts_1").select2("container").find("ul.select2-choices").sortable({
        containment: "parent", 
        start: function() { jQuery("#_posts_1").select2("onSortStart"); },  
        update: function() { jQuery("#_posts_1").select2("onSortEnd"); } });
    jQuery("#_posts_1").on("change", function() { jQuery("#_posts_1").html(jQuery("#_posts_1").val());});

    [... the same code for each field ...]

    jQuery("#_posts_10").select2("container").find("ul.select2-choices").sortable({
        containment: "parent", 
        start: function() { jQuery("#_posts_10").select2("onSortStart"); }, 
        update: function() { jQuery("#_posts_10").select2("onSortEnd"); } });
    jQuery("#_posts_10").on("change", function() { jQuery("#_posts_10").html(jQuery("#_posts_10").val());});

如何优化独特功能? 感谢

1 个答案:

答案 0 :(得分:0)

jQuery("[id^='_posts_'").each(function(i,elem){
        $(elem).select2("container").find("ul.select2-choices").sortable({
        containment: "parent", 
        start: function() { $(elem).select2("onSortStart"); },  
        update: function() { $(elem).select2("onSortEnd"); } });
    $(elem).on("change", function() { $(elem).html($(elem).val());});
});