2017-03-16 45 views
0

我有一個按鈕,從調整大小200像素一個div - 290pxjQuery .position()我可以得到calc()值而不是px值嗎?

在這種div元素正在使用calc(50% - 25px); 25px = half width of child定位成存在 - 因此它們被居中地定位。

我使用jQuery的ui.swappable交換元素,但你是問題,他們似乎把他們的計算值永久交換一次

交換預left:calc(50% - 25px); 交換後left:74px

是有一種方法可以交換calc(50% - 25px);而不是價值後期鈣?

$(this).position()

+2

請發表您的代碼在這裏,所以我們可以提供幫助。 –

回答

0

解決了這個。

而不是交換元素的位置,我使用以下從可拖動droppable div中提取子html,然後將其附加到它們各自的div中,從而保持calc()值。

$(".ClassofSwappableElement").draggable({ 
    stack: ".ClassofSwappableElement", 
    distance: 0, 
    revert: "invalid", 
    opacity: 0.5, 
    helper: "clone" 
}); 

$(".ClassofSwappableElement").droppable({ 
    accept: ".ClassofSwappableElement", 
    drop: function(evt, ui) { 

var draggable = ui.draggable, 
    draggablebgc = ui.draggable.children().css('background-color'), 
    draggablevalue = ui.draggable.attr('value'), 
    droppable = $(this), 
    droppablebgc = $(this).children().css('backgroundColor'), 
    droppablevalue = $(this).attr('value'); 

draggable.attr('value', droppablevalue); 
droppable.children('.ClassofChildYouWanttoChangeBgColorof').css({ backgroundColor: draggablebgc }); 
droppable.attr('value', draggablevalue); 
draggable.children('.ClassofChildYouWanttoChangeBgColorof').css({ backgroundColor: droppablebgc }); 

var drophtml = droppable.html(), 
    draghtml = draggable.html(); 

droppable.empty(); 
draggable.empty(); 
droppable.append(draghtml); 
draggable.append(drophtml); 

注:需要jQueryUI的

+0

它的開頭來自這個答案@ satrun77 http://stackoverflow.com/a/7653804/7441661 – denski

相關問題