この関数が返すオブジェクトを ajax 投稿に投稿すると、「 Uncaught TypeError: Illegal invocation 」が表示されるのはなぜですか。
base.serialize = function()
{
var data
  , depth = 0;
    step = function(level, depth)
    {       
        var array  = [ ]
          , items = level.children("li");
            items.each(function()
            {
                var   li   = $(this)
                    , item = $.extend({}, li.data())
                    , sub  = li.children("ol");
                    if (sub.length)
                    {
                        item.children = step(sub, depth + 1);
                    }
                array.push(item);
            });
        return array;
    }
data = step(base.$el, depth);
return data;
};
私がやろうとしているのは、データ値を持つ HTML ツリーを配列に変換して、並べ替え順序をデータベースに保存することです。
/*
 * ------------------------------------------------------
 *  Liveflex Treeview
 * ------------------------------------------------------
 */
var tree = $(".dd-list").liveflex_treeview({
      handle        : 'div.dd-handle'
    , opencollapse  : '.opencollapse'
    , itemMoved     : function(e)
                    {
                        var sort_array = e.serialize();
                            // Save order
                            $.post('/url_fetch/sort_posts', { 'sort_array' : sort_array }, function(data)
                            {
                                console.log('Data:' + data);
                            });
                    }
});