在Jquery Sortable中获取传输项的新id

时间:2013-04-16 05:42:46

标签: javascript jquery

我在排序中使用了两个ul。我创建了可排序的函数,可以在其他li中转移ul,这样他们就可以交换项目。我的问题是我无法得到li转移的ul的确切ID。

示例场景:

当我将Test 1拖到第二个ul (no2)时,它会被转移,但我得到的ID是1(这是测试1来自ul的原始ID),然后是{ {1}}(这是测试1转移的ul的id)。 我需要的只是测试1转移的ul的id,即2。如何获得确切的值?

以下是我的代码:

2

其他:

如何获取转让的ID <ul class="connected list no1" id="1"> <li style="cursor:move;" id="trans_1">Test 1</li> <li style="cursor:move;" id="trans_2">Test 2</li> </ul> <ul class="connected list no2" id="2"> <li style="cursor:move;" id="trans_3">Other 1</li> <li style="cursor:move;" id="trans_4">Other 2</li> </ul> <script> $(function() { $('.connected').sortable({ connectWith: '.connected', dropOnEmpty: true, update: function(){ //alert($(this).parents('ul').attr('id')); alert($(this).attr('id')); } }); }); </script>

更新

我需要的是获取li ul id转移的地方,反之亦然。我上面所说的只是一个例子,并不意味着我只想要li。如果我将id=2转移到id为Other 1的其他ul中,该怎么办?就像那样反过来。

2 个答案:

答案 0 :(得分:1)

查看FIDDLE

$(function() {
    $('.connected').sortable({
        connectWith: '.connected',
        dropOnEmpty: true,
        receive:function(event, ui ){
            alert(ui.item.attr('id'));
        }
    });
});

答案 1 :(得分:0)

看看你的问题是什么,你有<ul> .connected的共同css类,这就是为什么它获得两个id。相反,您只能定位具有css类<ul>.no2事件bind的第二个sortupdate,并查找其ID。

这样:

$(function() {
   $('.connected').sortable({
     connectWith: '.connected',
     dropOnEmpty: true
   });

   $('.no2').bind('sortupdate', function(e) {
     alert(this.id);
   });
});

试试这个,看看这是否有帮助。

Demo Fiddle