2009-12-23 85 views
0

我有一個兩列的表;名稱和項目(由圖像表示)。jQuery可拖動改變CSS「頂部」值

<table> 
    <tr> 
    <td class='name'>bob</td> <td class='items'><img src='thing1.gif' class='item'></td> 
    </tr> 
    <tr> 
    <td class='name'>joe</td> <td class='items'><img src='thing2.gif' class='item'></td> 
    </tr> 
</table> 

我想有用戶能夠從一個行(從喬即,移動「thing2.gif」鮑勃)拖動圖像到另一個。我做到了這一點與jQuery如下:

// initialize these as draggable 
$(".item").draggable({ 
    revert: "invalid", 
    ghosting: true, 
    opacity: 0.5, 
}); 

$(".items").droppable({ 
    accept: ".item", 
    activeClass: "drop_active", 
    drop: function(event, ui) { 
     $(this).append(ui.draggable); 
    } 
}); 

我現在遇到的問題是,在移動後,每個IMG似乎有獲得了一個新的CSS屬性:top: ±X;,其中X代表形象是如何的感動垂直。也就是說,如果我在拖放圖像之前將圖像拖動到像素上,它將具有top: -40px的屬性。這會使其在新行上方顯示40個像素的效果。有誰知道如何解決這個問題?或者,任何人都可以提出一個更好的方法來做到這一點

回答

0

只需刪除放置處理程序中的頂級屬性即可。

$(this).append($(ui.draggable).css('top','')); 
0

對於未來的形式谷歌..你也可以添加:

.ui-draggable-dragging{ 
    top:0 !important; 
}