2013-10-22 57 views
3

所以我正在處理這個應用程序,我希望人們能夠將項目從一個表格數據拖到其他表格數據,這些數據必須包含在父表格行中。jQuery UI可排序的遏制無法檢測佔位符

但是,每當我拖動它似乎堅持遏制排除任何佔位符的高度。

試一試:http://jsfiddle.net/2wy8R/

的我怎樣才能使它選擇父的父母知道嗎?那麼,我怎樣才能使佔位符數呢?

問候

. 

更新:這個問題http://youtu.be/PMXcQvJmRGw

+0

可以ü創建一個js小提琴的這個問題 – Arunu

+0

@Arunu http://jsfiddle.net/2wy8R/和我更新了第一篇文章 –

+0

不知道你的問題是什麼?你有什麼看起來對我好,你能解釋一下更多 –

回答

3

OK的YouTube影片,在這裏你去。重寫默認包含,因爲它看起來與您的方案有關。讓我知道這是不是一個好主意,但它似乎工作:

http://jsfiddle.net/2wy8R/6/

$('#first, #second').sortable({ 
    connectWith: '.sortable', 
    placeholder: 'placeholder', 
    start: function(event, ui) { 
     ui.placeholder.height(ui.item.height() - 4); 
     var p = $(ui.helper); 
     var tr = p.closest("tr"); 
     $(document).mousemove(function(e) { 
      var pOffset = p.offset(); 
      var trOffset = tr.offset(); 
      if (pOffset.left < trOffset.left) { 
       p.css({left: trOffset.left}); 
      } 
      if (pOffset.left + p.width() > trOffset.left + tr.width()) { 
       p.css({left: trOffset.left + tr.width() - p.width()}); 
      } 
      if (pOffset.top < trOffset.top) { 
       p.css({top: trOffset.top}); 
      } 
      if (pOffset.top + p.height() > trOffset.top + tr.height()) { 
       p.css({top: trOffset.top + tr.height() - p.height()}); 
      } 
     }); 
    } 
}).disableSelection(); 

只是要小心它雖然,因爲這將保持鼠標移動事件的文件。你可能想綁定它之前解除mousemove綁定它...

+0

而且,是的,這就是解決方案,謝謝!它的工作原理就像我期望的遏制工作:)你認爲我應該在jQuery UI bug網站上報告這個嗎? –

+0

可能,我不知道jquery UI是否知道這是否是一個錯誤,但他們會告訴你那裏 –

+0

我不質疑這個答案,但是,這個小提琴和那個小提琴之間的功能有什麼區別在問題中? – Rooster