2009-07-10 32 views
3

是否有可能在两个列表之间拖动jQuery UI Sortable列表项,其中之一是在jQuery UI对话框中,而其中一个不是?jQuery UI可排序和对话

我试图创建一个对话框,用户可以将对话框中的表单字段拖动到页面上的表单中,但是我无法将对象边框内的项目拖出。

在此先感谢

编辑

看来,拖动和粪便的实际工作,但你不能看到该项目一旦你超越了对话。这并不是很理想。 (见redsquare's demo

另一个编辑

是获取对话就可以创建具有overflow:hidden主要股利。如果我在Firebug中禁用这个拖动工作正常,所以我想我可以以某种方式覆盖这个,但我怀疑这会导致更多的问题。

+0

汤姆 - 更新了我的答案fyi。 – redsquare 2009-07-13 14:50:53

回答

5

演示here

这是否重复您的问题?我可以在两者之间拖曳,但是当你拖出对话框或拖入对话框时,你确实会失去帮手。我认为当你移出或进入对话框时,它可能需要调整z-indexing,但它仍然有效......只是!

当我稍后再多一点时,我会尝试对此进行排序。

更新:调整z-index帮助(很好地帮助从列表拖到对话 - 第一次!)...将使它更好!请参阅here

NEW UPDATE新的演示在这里,我不得不使用帮助器来确保z-index保持正确。现在作品here

+0

谢谢 - 我实际上并没有意识到拖动仍然有效,因为拖动时我看不到该项目,所以根本不工作。但我希望能够在任何时候都能理想地看到拖动的物品。 – 2009-07-10 15:26:20

1

我有一个类似的问题,在对话框之间排序元素,所以感谢代码的红色方块。已经能够远一点,简化代码这个自成体系位(无需额外的标记):

this.sortables = $(sortSelector).sortable({ 
    connectWith: sortSelector, 
    zIndex : 99999, 
    helper: function() { 
     var helper = $('.sortHelper li'); 
     if (!helper.length) { 
      helper = $('<ul><li></li></ul>') 
       .addClass('sortHelper') 
       .appendTo('body') 
       .find('li') 
       .css({ 'z-index': 9999 }); 
     } 

     return helper; 
    }, 
    start: function(event, ui) { 
     ui.helper.text(ui.item.text()); 
    } 
}); 

演示在this jsfiddle