2012-03-01 95 views
0

下面的代碼有什麼問題?拖放jQuery

在這裏看到:http://jsfiddle.net/xKcAu/

JS:

$(document).ready(function() { 

    $('#diag1').draggable(); 
    $('#diag1').css('background-color', '#f4f'); 
    $('#diag1').width('100px'); 
    $('#diag1').height('50px'); 

    $('#cnt1').css('background-color', '#4ff'); 
    $('#cnt1').width('300px'); 
    $('#cnt1').height('300px'); 

    $('#cnt1').droppable({ 
     drop: function(event, ui) {     
      $(this).append(ui.draggable); 
     } 
    }); 

}); 

HTML:

<div id="cnt1">ddd</div> 
<div id="diag1">Dialog 1</div> 

如果我滴在一個大的小格也隱藏了。爲什麼?

+0

看起來像一個'z-index'問題。 – Bot 2012-03-01 16:50:15

+0

這一行:$(this).append(ui.draggable); ---也看看jQuery中的鏈接,你不需要一直定義jquery函數的選擇器。你可以做$('。selector')。css()。parent()。find()。whatever() – ggzone 2012-03-01 16:50:32

+1

http://jsfiddle.net/xKcAu/4/ – 2012-03-01 16:52:34

回答

1

沒有什麼比你編碼它,所以當div被放棄時,它成爲更大的div的孩子,然後基於它的定位它結束了屏幕外。看看會發生什麼,當你重新定位大格:jsFiddle

1
#​diag1{ 
    position:absolute; 
} 

或添加

$('#diag1').css('position', 'absolute'); 

我不是100%肯定,這是你在找什麼?

http://jsfiddle.net

1

它不dissapear。它會附加到您放棄的位置,但會保留舊位置值並結束離屏。 您應該嘗試在diag1上使用position: absolute,因此可放置的不使用position: relative。現在位置座標總是按照文檔的左上角而不是容器進行測量。

0

如果你想要做的就是密切留意可拖動,然後就刪除以下

$(this).append(ui.draggable); 
提到追加和定位導致問題