0

我正在使用 JQuery 嵌套排序插件我可以拖放多个元素,如何获取被拖动元素的 id?

<script>
 $(document).ready(function(){

$('.sortable').nestedSortable({
    handle: 'div',
    items: 'li',
    toleranceElement: '> div'
});

});
</script>

编辑

我像这样编辑了jquery函数

  $(document).ready(function(){
    var movedItemId = '';
    $('.sortable').nestedSortable({
        handle: 'div',
        items: 'li',
        toleranceElement: 'div',
    }).on("sort", function(a, item){
        movedItemId = '';
        $('div', item.item).each(function(){
            movedItemId += ' ' + $(this).attr('id') + ',';
        });
        var id = movedItemId.substr(0, movedItemId.length - 1);
        var data = {pid:id};
        $.ajax({
            type: "POST",
            data: data,
            url:"{{ path('v2_pm_patents_trashpatents') }}",
            cache: false,
        });
    });
});
</script>

我面临的问题

  1. 它调用了我想用 Ajax 执行的方法,但它调用了很多次,我只想执行一次该方法。

  2. 当我拖动包含子项目的项目时,我只想要父项目的 id 而不是子项目的 id,

我该如何解决这些问题?

谢谢

4

1 回答 1

0

nestedSortable插件有一些限制。

它的主要方法是.serialize,.toArray.toHierarchy获取整体价值。

该插件使用 jQuery 可排序 UI。我查看了它的事件回调。我试过了,on("change", [...])但这似乎不起作用。on("sort", [...])确实有效,但每次移动鼠标时都会调用它。查看“事件”选项卡下的不同事件:http: //jqueryui.com/demos/sortable/

这是绑定到sort回调的工作版本:http: //jsfiddle.net/QL8Yj/4/

于 2012-06-27T15:11:59.723 回答