【问题标题】:jQueryUI and problem with sortable eventsjQueryUI 和可排序事件的问题
【发布时间】:2011-05-30 22:55:16
【问题描述】:

我正在使用“连接列表槽标签”演示。我稍微修改了代码。我将 'foo' 类添加到 tabs-1tabs-2 元素中。 我还添加了以下脚本:

$(".foo ul").sortable({
    stop: function (event, ui) {
            var tabId = $(this).attr('id');
            var elementIndex = ui.item.index();
            alert('tab id: ' + tabId + ' | element index: ' + elementIndex);
}});

当我更改同一选项卡内元素的排序顺序时,它工作得非常好,但是当我将元素从第一个选项卡放到第二个选项卡(反之亦然)时出现问题,因为元素首先放置在tab1 中的第一个位置(tab id = sortable1,元素索引 = 0),然后将其放到最后一个位置的第二个选项卡上。问题是因为 sortable 事件没有被第二次触发。

我错过了一些东西,但不知道是什么:)
任何帮助将不胜感激。

谢谢!

编辑:

演示可以在以下链接中找到:http://jqueryui.com/demos/sortable/#connect-lists-through-tabs

【问题讨论】:

    标签: jquery-ui jquery-ui-sortable


    【解决方案1】:

    你有没有找到答案?因为我目前遇到了同样的问题 - 尝试了多种解决方法,但到目前为止都没有成功。

    编辑

    从头开始,刚刚找到了我认为最有效的解决方法。将事件“DOMNodeInserted”绑定到您正在使用的<ul> 列表类,您可以通过搜索其当前 DOM 位置来测试列表项:

    $(".connectedSortable").bind("DOMNodeInserted", function() {
    $('#tabs').find('li#staff-'+currentStaffId).each(function() {
    listDeptID = $(this).parent().parent().attr('id');
    listDeptID = listDeptID.split('-');
    listDeptID = listDeptID[1];
    ....
    

    在我的这个示例中,我的列表项的 id 为 staff-x 和该员工的 id,因此 find 返回一个数组元素,并且运行效率很高。

    HTH

    小丑。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-11
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-25
      相关资源
      最近更新 更多