Draggable可以在这里工作,但是当我将DIV拖到可放置区域时,警报功能不会触发。我确定这是愚蠢的事,但也许有人可以阻止我把我的头撞在墙上,我做得不对?
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<title></title>
</head>
<body>
<script>
$(function() {
$( ".draggable" ).draggable();
$( ".droppable" ).droppable({
drop: function(event, ui) {
alert('dropped');
}
});
});
</script>
<div id=10 class="draggable">one</div>
<div id="trash" class="droppable"></div>
</body>
</html>
答案 0 :(得分:7)
问题在于,默认情况下,元素的中心用于确定元素的删除位置。您的div
没有定义的大小,因此它是屏幕的宽度。如果您设法删除它以使该元素的中心位于droppable中,您将看到警报。
这种背景颜色的小提琴说明了问题。
使用定义的宽度,您将看到您可能正在寻找的功能:
注意:我假设你已经遗漏了你的css而且#trash
div有一些大小,以便它可以被删除。
答案 1 :(得分:0)
它似乎失败了,因为你的droppable div似乎没有任何宽度,所以你不可能放弃任何东西。我拿了你的例子并稍微修改了一下,我就能让它工作了:
<html>
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js" type="text/javascript"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js" type="text/javascript"></script>
<title></title>
</head>
<body>
<script>
$(function() {
$( ".draggable" ).draggable();
$( ".droppable" ).droppable({
drop: function(event, ui) {
alert('dropped');
}
});
});
</script>
<div id=10 class="draggable">one</div>
<div id="trash" class="droppable">DROP HERE</div>
</body>
</html>
答案 2 :(得分:0)
James Montagne answer是对的。特别是它不工作的原因(谢谢!)。
但是,我认为更好的解决方案是通过将tolerance
的droppable设置为pointer
来提高弃落率。