0

我正在使用将订单保存到数据库的可排序序列化,当我正在排序的列表更改(即拖动)时,它可以正常工作。但是我想在页面加载时自动序列化项目的顺序。

我正在使用以下内容对数据进行排序:

$(".menuSubSection_"+ <? echo $id; ?> +" ul.sortableSub").sortable({
                connectWith: "ul.sortableSub",
                placeholder: "ui-state-highlight",
                update: function(){
                $('#saved').html('ORDER CHANGED + SAVED');
                $('#saved').fadeIn( function(){
                $(this).delay(2000).fadeOut(); 
                });
                saveOrderSub('<? echo $id; ?>');

                },
                start: function(event, ui) {
                $('ul.sortableSub').find('li:hidden').show();

                }
});
});

以及将序列化存储到数据库的以下函数:

function saveOrderSub(menuid){

       var order = $(".menuSubSection_"+ menuid +" ul.sortableSub").sortable("serialize"); //
       $.post("../lib/saveOrderSub.php?menuID=" + menuid ,order,function(theResponse){

               $('#saved').html(theResponse);
               $('#saved').fadeIn( function(){
                $(this).delay(2000).fadeOut(); 
               }); 
                //reloadMenu();
                reloadMenuNav();
                     });
       event.preventDefault();
}

我尝试将其添加saveOrderSub(menuid)到标题部分,以便在加载时调用它,但是序列化和发布似乎不起作用。

谁能阐明我如何在不更改列表顺序来触发事件的情况下使此功能起作用?

4

2 回答 2

0

试试这个(在 jQuery 之后的任何地方):

<script>
  $(function(){
    saveOrderSub('<? echo $id; ?>');
  });
</script>
于 2013-04-28T00:29:59.717 回答
0

jQuery UI Sortable API中,您可以找到一个名为“create”的事件。文档说创建可排序时会触发此事件。也许这可以帮助你?我认为您当前的实现看起来像这样:

$(".menuSubSection_"+ <? echo $id; ?> +" ul.sortableSub").sortable({
            connectWith: "ul.sortableSub",
            placeholder: "ui-state-highlight",
            //new
            create: saveOrderSub('<? echo $id; ?>'),
            update: function(){
            $('#saved').html('ORDER CHANGED + SAVED');
            $('#saved').fadeIn( function(){
            $(this).delay(2000).fadeOut(); 
            });
            saveOrderSub('<? echo $id; ?>');

            },
            start: function(event, ui) {
            $('ul.sortableSub').find('li:hidden').show();

            }
});
于 2013-04-28T00:43:37.320 回答