如何使用NestedSoting插件获取拖动元素的ID

时间:2012-06-27 15:00:36

标签: jquery jquery-ui

我正在使用JQuery nestedSorting插件 我可以拖放多个元素,如何获取拖动元素的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,

  3. 如何解决这些问题?

    由于

1 个答案:

答案 0 :(得分:0)

nestedSortable插件存在一些限制。

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

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

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