Dav*_*ues 5 javascript jquery jquery-ui
按照这个例子。
<div id="containers">
<div class="frame">
<div class="popup">Popup</div>
<div class="object">Object 1</div>
<div class="object">Object 2</div>
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我希望每个对象都可以拖动到弹出窗口。一旦进入弹出窗口,就有可能再次为框架拖动
问题是我第二次这样做了。当我尝试将可拖动对象拖放到可放置弹出窗口时,什么也没有发生...
有任何想法吗?
这是我的代码。 http://jsfiddle.net/PtLLf/49/
原因是因为默认情况下,当一个元素被放置在嵌套的 droppable 上时,每个 droppable 都会接收该元素。
因此,在您的情况下,内部的下降被触发,但外部 div 也被触发并获取元素本身。
您可以将greedyoption设置为 true,任何父 droppable 都不会收到该元素。drop 事件仍然会正常冒泡,但是可以检查 event.target 以查看哪个 droppable 收到了 draggable 元素。
参考:http : //api.jqueryui.com/droppable/#option-greedy
代码:
$('#containers .frame .popup').droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: '.object',
greedy: true ,
drop: function (event, ui) {
$(ui.draggable).addClass("insidePopup");
ui.draggable.detach().appendTo($(this));
}
});
$('#containers .frame').droppable({
activeClass: "ui-state-default",
hoverClass: "ui-state-hover",
accept: '.insidePopup',
greedy: true ,
drop: function (event, ui) {
ui.draggable.detach().appendTo($(this));
$(ui.draggable).removeClass("insidePopup");
}
});
$('#containers .frame .object').draggable({
helper: 'clone',
containment: "document"
});
Run Code Online (Sandbox Code Playgroud)
演示:http : //jsfiddle.net/IrvinDominin/dVFgn/
| 归档时间: |
|
| 查看次数: |
2408 次 |
| 最近记录: |