2011-11-10 73 views
14

jQuery UI可拖拽互動作爲家長有一個不錯的屬性setting the containmentjQuery UI如何設置家長家長的可拖動遏制選項

$(".selector").draggable({ containment: 'parent' }); 

我想將遏制作爲父母的父母。沒有字符串值來實現這一點,因爲字符串的選項

'父', '文件', '窗口',[X1,Y1,X2,Y2]

我可以計算x1,y1,x2,y2,並使用這些值設置容器相對於文檔的邊界。但是,如果窗口在頁面加載後調整大小,則容器位置可以相對於父級的父級位置進行更改。無論窗口大小如何調整,本機「父」選項都會將可拖動元素保留在父元素內。

有沒有辦法使用父母的父母完成這個可拖動的遏制? 。

回答

20

根據documentationcontainment選項也可以是jquery選擇器或實際元素。所以,你可以這樣做:

$('.selector').draggable({ 
    containment: $('.selector').parent().parent() 
}); 

甚至更​​好的是:

$('.selector').each(function(){ 
    $(this).draggable({ 
     containment: $(this).parent().parent() 
    }); 
}); 
+0

我嘗試了排序表做到這一點,但是$(本).parent()父()沒有工作。還有其他建議嗎?我體內的TR是可排序的,我想將它們限制在整個表格內。 –

3

根據該文檔,你不傳中爲containment屬性的字符串。你可以通過任何的:

Selector, Element, String, Array 

所以,只要選擇父親的父親與jQuery(即$(".selector").parent().parent()),並通過替代'parent'英寸

0

也能正常工作,以及:

$('.selector').draggable({ 
    containment: "#parent", 
    scroll: false 
});