2012-03-01 137 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); 
提到追加和定位导致问题