【发布时间】:2014-07-29 20:47:27
【问题描述】:
我有两个可放置区域,其中一个在另一个内部。我希望能够仅针对内部区域捕获丢弃事件并防止传播,因此外部根本不会得到它。有可能吗?
<HTML>
<HEAD>
<TITLE>Layout Example</TITLE>
<script type='text/javascript' src='http://code.jquery.com/jquery-1.8.3.js'></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.9.2/jquery-ui.js"></script>
<SCRIPT type="text/javascript">
$(document).ready(function () {
$('#draggable').draggable();
$('#droppable1').droppable({
drop: function() {
console.log('droppable 1')
}
});
$('#droppable2').droppable({
drop: function() {
console.log('droppable 2')
}
});
});
</SCRIPT>
<style>
#droppable1 {
border: 1px solid black;
position: absolute;
height: 200px;
top: 0px;
width: 500px;
background: blue;
}
#droppable2 {
border: 1px solid black;
position: absolute;
height: 100px;
top: 50px;
width: 400px;
left: 50px;
z-index: 100;
background: red;
}
#draggable {
border: 1px solid black;
position: absolute;
height: 50px;
top: 300px;
width: 100px;
left: 300px;
z-index: 200;
}
</style>
</HEAD>
<BODY>
<div id="droppable1">Droppable 1</div>
<div id="droppable2">Droppable 2</div>
<div id="draggable">Draggable</div>
</BODY>
</HTML>
这里是 jsFiddle example。
尝试将“Draggable”框拖到“Droppable 2”区域。有了这个实现,“Droppable 1”区域将首先获得 Drop 事件,之后它只会进入“Droppable 2”。我想要的只是“Droppable 2”获得事件。
【问题讨论】:
标签: jquery jquery-ui jquery-ui-draggable jquery-ui-droppable